seq コマンドは、指定した範囲や間隔で数値の連続を生成して標準出力に表示 するためのコマンドです。
ループ処理やファイル名の生成、テストデータ作成などによく利用されます。
構文(Syntax)
seq [オプション] [開始値] [増分] 終了値
※ 開始値 と 増分 を省略すると、デフォルトはそれぞれ 1 になります。
主なオプション一覧
| オプション | 説明 | 使用例 |
|---|---|---|
| (なし) | 数字の列を出力 | seq 5 |
-w | 桁数を揃えてゼロ埋め出力 | seq -w 1 10 |
-s STRING | 区切り文字を指定(デフォルトは改行) | seq -s , 1 5 |
-f FORMAT | 書式指定(printf形式) | seq -f "num%03g" 1 5 |
--help | ヘルプを表示 | seq --help |
--version | バージョン情報を表示 | seq --version |
実行例
1 から 5 までを出力
seq 5
出力:
1
2
3
4
5
開始値と終了値を指定
seq 3 7
出力:
3
4
5
6
7
開始値・増分・終了値を指定
seq 2 2 10
出力:
2
4
6
8
10
桁を揃えてゼロ埋め
seq -w 1 12
出力:
01
02
03
...
12
区切り文字をカンマに変更
seq -s , 1 5
出力:
1,2,3,4,5
書式を指定して出力
seq -f "item_%03g" 1 3
出力:
item_001
item_002
item_003
小数も扱う
seq 0.5 0.5 2
出力:
0.5
1.0
1.5
2.0
エラー例(終了値のみ負数)
seq -5
出力例:
seq: invalid zero increment value
Try 'seq --help' for more information.
関連コマンド
yes: 繰り返し文字列を出力printf: 書式付きで出力for: シェルのループ構文で数列を使う場合によく組み合わせる
備考
seqは GNU Coreutils に含まれていますが、シェルによっては{1..5}というブレース展開でも代替可能です。
例:echo {1..5}- 大きな範囲を指定すると大量に出力されるため、
headやxargsと組み合わせて使うことが多いです。
参考
- manページ: man7.org seq(1)
- GNU Coreutils: https://www.gnu.org/software/coreutils/

コメント