seq コマンド

seqコマンドという便利なLinuxコマンドがあったのでメモ.ちなみに僕はシェルはzshを使っています.
seqコマンドは基本的には開始と終了を指定すれば,開始から終了までの数列を出力してくれるコマンド.使い方は以下のとおり.

seq -f "%03g" 0 100

これで 000~100までの数値が作れる.ここで -f “%03g” は,C言語等でもおなじみprintfのフォーマットと同じで,3桁になるように0で埋めるという意味です.別にかならず必要というわけではなく,これがないと,0~9,10~99,100という感じに出力されます.実は0で埋めるだけだったら,-wというオプションでもOK.

seq -w 0 100

これで0で整えられた文字列が出力される.ところで,普通にseqコマンドを実行すると指定した数字が改行区切りで出力されるけど,-sオプションを使えば区切り文字も変更できる.

seq -w -s , 5 15

この場合,05,06,07,08,09,10,11,12,13,14,15 という文字列が出力されるはず.
使用例:forループと組み合わせたりして

for x in `seq -f "%03g" 0 100`; echo $x

こんな感じ.でもforループで使うなら,

for x in {000..100}; echo $x

のほうが簡単。まぁでもstepも設定できるのは便利。

for x in `seq -f "%03g" 0 5 100`; echo $x

この場合だと,000から100まで5飛びで000 005 010 015 … 100が出力される.

コメントする