😺
【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