Linuxコマンドで連番を作成する方法(seq)

Linuxコマンドで連番を作成する方法(seq)

Linux環境で、連番を作成したり、繰り替えし処理などのときに役立つのが「seq」コマンドです。ここでは、seqコマンドの基本的な使い方について紹介します。

この記事は、以下の環境での動作結果を基にしています。他のディストリビューションやバージョンでは、動作結果が異なる場合があることをご了承ください。

ソフトウェアバージョン
CentOS Linux7.4.1708

seqコマンドの使い方

書式

seq [オプション]... 終了値
seq [オプション]... 開始値 終了値
seq [オプション]... 開始値 増加量 終了値

主なオプション

オプション説明
-f出力フォーマットを指定します。
-s区切り文字を指定します。
-w文字数を合わせます。

使用例

1から5までの連番を出力する。

# seq 5

7から11までの連番を出力する。

# seq 7 11

1から9まで、2ずつ増加する数値を出力する

# seq 1 2 9

1.3から3.3まで、0.5ずつ増加する数値を出力する。

# seq 1.3 0.5 3.3

3から0まで、1ずつ減少する数値を出力する。

# seq 3 -1 0

1から10までを、文字数をあわせて出力する。

# seq -w 1 10
01
02
~省略~
09
10

1から3までを、区切り文字「,」で出力する。(既定の区切り文字は改行)

# seq -s , 1 3
1,2,3

5から9までを、小数点以下2桁で出力する

# seq -f '%.2f' 5 9
5.00
6.00
7.00
8.00
9.00

9から12までを、小数点以下2桁かつ全体7桁で0埋めで出力する

# seq -f '%07.2f' 9 12
0009.00
0010.00
0011.00
0012.00

処理を10回繰り返し実行する。

# for i in `seq 10`; do echo $i; done

file01.txtから順にfile99.txtまでを作成する。

# touch `seq -f 'file%02g.txt' 1 99`

192.168.0.1~192.168.0.50までのIPアドレスを出力

# seq -f '192.168.0.%.0f' 1 50
192.168.0.1
192.168.0.2
~省略~
192.168.0.50

あとがき

テストデータの作成やファイルの一括作成時など、連番が欲しいときが以外にあります。そういうときに活躍しそうです。