(23)【seq】シェルスクリプトコマンド活用紹介

seqコマンド

  • 連続番号を出力する
  • 開始の数と間隔を指定する
  • 数字を逆順で出力する
  • 書式を指定して出力する

seqコマンド概要

sequenceの語源を持つ「seq」は連続番号の他、一定間隔置きに数字の列を出力する順列番号出力コマンドです。

seqコマンドの書式

seq [オプション] [開始の数 [増分]] 終了の数

seqコマンドの主なオプション

オプション 意味
-w 先頭を0で埋めて、数字の幅を等しくする
-f 書式 数字の書式を指定する
-s 文字列 数字の区切りに使う文字列を指定する

seqコマンド詳細説明

連続番号を出力する

 一般的なseqコマンドの利用例として、 seq 10は、1から10までを出力します。

1から指定した数までの連続番号を出力する

$ seq 10
1
2
3
4
5
6
7
8
9
10

出力される数字の桁を併せたい場合はよくあります。
例えば、二桁で表示させたい場合に、2ではなく02、3ではなく03といった出力です。

この場合は「-w」オプションを使用して桁を揃えることができます。例えば seq -w 10 の場合、幅が最大なのは「10」ですから、01、02と2桁で出力されます。

先頭を0で埋めて桁数をそろえて出力する

$ seq -q 10
01
02
03
04
05
06
07
08
09
10

開始の数と間隔を指定する

 開始の数を指定する場合は seq 5 15 のように、「seq 開始の数 終了の数」と指定します。

seq 5 (1から5までの数を出力する)

$ seq 5
1
2
3
4
5

 開始位置を指定することもできます。たとえば以下のように、5から始まり15までの順列を出力したい場合は以下のとおりです。

seq 5 15 (5から15までの数を出力する)

$ 5 15
5
6
7
8
9
10
11
12
13
14
15

seq 5 2 15 のように、開始と終了の間に増分を指定することもできます。

seq 5 2 15 (5から15まで、数を2ずつ増やしながら出力する)

$ seq 5 2 10
5
7
9

数字を逆順で出力する

 増分には実数や負の数を指定できます。従って、増分を「-1」と指定することで、数を逆順に出力することが可能です。この場合、開始と終了の数を指定する必要がある点に注意してください。

seq 5 -1 1 (5から1までの数を出力する)

$ seq 5 -1 1
5
4
3
2
1

 増分を「-1」と指定した場合と同じ効果を、別のコマンドを用いて実現できます。入力を行単位で逆順に出力する「tac」コマンドです。

seq 5 | tac (seqで1から5を出力し、tacコマンドで逆順に並び替えている)

$ seq 5 | tac
5
4
3
2
1

書式を指定して出力する

 「-f」オプションを用いて数字の書式を指定することができます。

 「%g」を利用することで、整数で出力する際の桁数を指定できます。例えば、4桁の幅であれば「%4g」、4桁で「0001」のようにゼロで埋めるならば「%04g」のようにします。

seq -f 書式 3 (1から3までの数値を指定した書式で出力する)

$ seq -f "%04g" 3
0001
0002
0003


$ seq -f "IMG%04g.jpg" 3
IMG0001.jpg
IMG0002.jpg
IMG0003.jpg
ヒント
次はtacコマンドについて説明します。

書籍の紹介

(24)【tac】シェルスクリプトコマンド活用紹介

(24)【tac】シェルスクリプトコマンド活用紹介

(22)【jot】シェルスクリプトコマンド活用紹介

(22)【jot】シェルスクリプトコマンド活用紹介