😺
【Bash】seq -fで出力フォーマットを指定する
やりたいこと
このように出力させたい。
user1
user2
user3
user4
user5
user6
user7
user8
user9
user10
環境
$ bash --version
GNU bash, version 5.0.17(1)-release (x86_64-pc-linux-gnu)
forを使う
forで1から10をこのように回せばできます。
$ for i in $(seq 10); do echo "user$i"; done
user1
user2
user3
user4
user5
user6
user7
user8
user9
user10
seq -fでも可能
本題です。
seqコマンドでも-fオプションを使うことで同じことができます。
$ seq -f 'user%g' 1 10
user1
user2
user3
user4
user5
user6
user7
user8
user9
user10
シンプルになりました。
-f(--format)オプション
seqコマンドは-fオプションを使うことでフォーマット指定子を使用できます。
フォーマット指定子とは、出力したいデータの形式を指定するための記号です。
man seqによると、C言語のprintf由来らしいです。
そのためprintfのドキュメントを見ると詳細がわかるはずです。
例えばこちらのサイトではフォーマット指定子をまとめてくれています。
%gは?
今回使用したものです。
浮動小数点数または指数表現を出力します(値に応じて適切な形式が選ばれます)。
参考
man seq
Discussion