連番を生成するUNIXコマンド。
コマンド例 | seq 5 |
seq 2 5 |
seq 1 10 |
seq 1 2 10 |
seq 10 -1 1 |
seq 20150401 20150405 |
---|---|---|---|---|---|---|
備考 | 1〜5 | 2〜5 | 1〜10 | 2ずつ増加 | 1ずつ減少 | 日付のような値 |
実行結果 | 1 |
2 |
1 |
1 |
10 |
20150401 |
デフォルトでは、生成される桁は統一されない(0埋めされない・桁数が揃わない)。
-wオプションを使うと、桁数が最大幅に合うよう自動的に0埋めされる。
コマンド例 | seq 1 5 |
seq -w 1 5 |
seq 1 10 |
seq -w 1 10 |
---|---|---|---|---|
実行結果 | 1 |
1 |
1 |
01 |
-fオプションを使うと、C言語のprintf形式の書式が使える。
ただし浮動小数点扱いなので、%dは使えず、%fを使う。デフォルトは%g。
コマンド例 | seq -f'%02d' 1 5 |
seq -f'%02f' 1 5 |
seq -f'%02.f' 1 5 |
seq -f'201504%02.f' 1 5 |
---|---|---|---|---|
実行結果 | seq: FORMAT `%02d' に不明な %d 指定があります |
1.000000 |
01 |
20150401 |
デフォルトでは、生成された数値が1行ずつ出力される。つまり、区切り文字は改行(\n相当)。
-sオプションを使うと、区切り文字を指定できる。
コマンド例 | seq -s' ' 1 5 |
seq -s'\t' 1 5 |
---|---|---|
備考 | 空白区切り | エスケープ機能は無いっぽい |
実行結果 | 1 2 3 4 5 |
1\t2\t3\t4\t5 |
for DATE in $(seq -f'201504%02.f' 1 5) do echo date=$DATE done
↓実行結果
date=20150401 date=20150402 date=20150403 date=20150404 date=20150405