Linuxを使ってスクリプトを組んでいると、連続した数値を簡単に扱いたい場面がよくあります。そんな時に活躍するのが、seq
コマンドです。seq
は「sequence(連続)」の略で、開始値から終了値までの数値を、一定の間隔で出力するための便利なコマンドです。
この記事では、seq
コマンドの基本的な使い方から、実用的なオプション、スクリプトでの応用方法までをわかりやすく紹介します。初心者から中級者の方まで、seq
の使い方をマスターしたい方は、ぜひ最後までご覧ください。
seqコマンドとは?
seq
コマンドは、数値の並び(連番)を生成するためのLinuxコマンドです。シェルスクリプトやループ処理において、「1から100まで」「10から1まで」「5ずつ増加」など、特定のパターンで数値を出力したい時に活躍します。
以下のように、シンプルな書式で使えるのが特徴です。
bashコピーする編集するseq 終了値
seq 開始値 終了値
seq 開始値 間隔 終了値
コマンドを実行すると、各数値が1行ずつ表示されます。
基本的な使い方
1からnまでの数値を表示
bashコピーする編集するseq 5
出力結果:
コピーする編集する1
2
3
4
5
このように、seq
に1つの数値(終了値)を指定すると、1からその数値まで1ずつ増加する連番が出力されます。
開始値と終了値を指定する
bashコピーする編集するseq 3 7
出力結果:
コピーする編集する3
4
5
6
7
開始値と終了値を指定すると、その範囲内の連続した数値を出力します。
開始値・間隔・終了値を指定する
bashコピーする編集するseq 1 2 9
出力結果:
コピーする編集する1
3
5
7
9
この書式では、開始値から間隔(ステップ)ずつ増加させて、終了値に達するまでの数値を出力します。
応用例と便利なオプション
出力に区切り文字を指定する:-sオプション
デフォルトでは出力が改行区切りですが、-s
オプションを使うと区切り文字を自由に指定できます。
bashコピーする編集するseq -s "," 1 5
出力結果:
コピーする編集する1,2,3,4,5
CSV形式のデータを作りたい時などに便利です。
整数をゼロパディングする:-wオプション
桁を揃えて出力したい場合は、-w
(ワイド)オプションを使用します。
bashコピーする編集するseq -w 1 10
出力結果:
python-replコピーする編集する01
02
03
...
10
ゼロ埋めにより、整然としたリストを作成できます。
出力するフォーマットを指定:-fオプション
-f
オプションを使うと、数値の前後に文字を加えることができます。C言語形式の書式指定が可能です。
bashコピーする編集するseq -f "item-%02g" 1 5
出力結果:
コピーする編集するitem-01
item-02
item-03
item-04
item-05
ファイル名や変数名を連番で自動生成したい場合に非常に有用です。
降順の連番を生成する
seq
は昇順だけでなく、降順の出力も可能です。ステップ(間隔)を負の値にすればOKです。
bashコピーする編集するseq 10 -1 1
出力結果:
python-replコピーする編集する10
9
8
...
1
逆順で処理を行いたいときなどに活躍します。
スクリプトでの活用方法
seq
はforループと組み合わせて使うことが多いです。
bashコピーする編集するfor i in $(seq 1 5); do
echo "行番号: $i"
done
出力結果:
makefileコピーする編集する行番号: 1
行番号: 2
行番号: 3
行番号: 4
行番号: 5
このように、ループ処理のカウンターとして使うと、簡潔で読みやすいコードになります。
よくあるエラーと注意点
- 小数点には非対応(整数のみ):
seq
は整数での連番には適していますが、小数点には基本的に対応していません。小数を扱いたい場合はawk
などの別ツールを検討しましょう。 - 桁数の制御に注意:
-w
オプションを使わない場合、桁数が揃わないため、整列表示や文字列結合に違和感が出ることがあります。 seq
は環境によって使えない場合がある:
ごく一部のLinux環境ではseq
がインストールされていないこともあります。そうした場合はbash
の組み込み文({1..5}
)で代用可能です。
seqコマンドの代替:波括弧展開との違い
bashでは、{1..5}
のような波括弧展開を使って連番を生成することもできます。
bashコピーする編集するfor i in {1..5}; do
echo $i
done
この方法は高速かつシンプルですが、-s
や-f
のような柔軟な制御はできません。柔軟性が必要な場合はseq
の方が優れています。
まとめ
seq
コマンドは、連続した数値を手軽に生成できる便利なLinuxユーティリティです。特にスクリプト内でのループ処理や、番号付きファイル名の生成、データの整形などにおいて威力を発揮します。
基本の書式から応用オプション、注意点までを把握しておけば、日常のターミナル作業がぐっと効率化します。特に、-s
や-w
、-f
オプションは覚えておくと実務で非常に役立ちます。
Linuxのシェルスクリプトやコマンドライン操作をもっと便利にしたい方は、ぜひseq
を積極的に使ってみてください。