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コマンドについて説明します。