Linuxコマンド:かんたんに連番を作成する(seq)

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

動作環境

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

cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)

書式とオプション

書式

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

まとめ

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

スポンサーリンク