seq コマンドは、他のプログラムへのパイプに適した一連の整数または実数を出力します。 seq コマンドは、他のさまざまなコマンドやループで一連の数字を生成するのに役立ちます。
構文
「seq」コマンドの一般的な構文は次のとおりです。
# seq [options] specification
例
1. 1 から始まる一連の数字を単純に表示するには、以下のコマンドを使用します:
# seq 4 1 2 3 4
デフォルトでは、特に指定されていない限り、seq コマンドは 1 から一連の数字の出力を開始します。
2. 「seq」コマンドで生成される数列の上限と下限を指定することもできます:
# seq 6 9 6 7 8 9
3. 他の等差数列を生成する必要がある場合は、seq コマンドを使用できます。その構文は次のとおりです。
# seq [start] [incr] [stop]
これにより、start、start + incr、start + incr + incr …、stop までの数値が生成されます。例でこれを理解しましょう:
# seq 1 3 10 1 4 7 10
ここでは、1 から始めて、10 以下の値になるまで毎回 3 ずつ増やします。start、incr、および stop の値は、正または負の整数または浮動小数点 10 進数にすることができます。
4. 基本的にシーケンスを逆方向に出力する負のインクリメントの例を見てみましょう。例:
# seq 10 -2 4 10 8 6 4
「seq」コマンドの出力のフォーマット
コマンドのさまざまな引数を使用して、seq コマンドの出力をフォーマットできます。
1. 上記のすべてのコマンドで気づいたように、出力は常に改行で区切られた一連の数字です。そうですね、好きなように変えればいいんです。以下に示すように、seq コマンドの「-s」オプションを使用します。
# seq -s "|" 5 1|2|3|4|5
2. 「-f」オプションを使用して出力をフォーマットすることもできます。 printf スタイル形式を使用して、各数値を出力します。以下に示すように、「-f」を使用して、E、e、f、G、g、% などの変換文字を使用できます。デフォルトは %g です。
# seq -f '##%g##' 1 5 ##1## ##2## ##3## ##4## ##5##
# seq -f %f 1 5 1.000000 2.000000 3.000000 4.000000 5.000000
3. 必要に応じてゼロをパディングして、すべての数値の幅を均等にすることもできます。このオプションは、-f オプションでは効果がありません。
# seq -w 1 10 01 02 03 04 05 06 07 08 09 10
Bash ループでの seq の使用
次に示すように、コマンド置換を使用して for ループで seq を使用することもできます。
$ for i in $(seq 1 0.5 4) do echo "The number is $i" done
出力:
The number is 1 The number is 1.5 The number is 2 The number is 2.5 The number is 3 The number is 3.5 The number is 4