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