このガイドでは、seqコマンドを使用してLinux端末内の数字のリストを生成する方法を説明します。
Seqコマンドの基本構文
1〜20の数字を画面に表示したかったとします。
次のseqコマンドは、これを行う方法を示しています。
seq 1 20
それ自体では、このコマンドはかなり役に立たない。 少なくとも、数値をファイルに出力したいと思うでしょう。
次のようにcatコマンドを使用してこれを行うことができます:
seq 1 20 | cat> numberedfile
これで、各行に数字1〜20が印刷されたnumberedfileというファイルが作成されます。
これまで数のシーケンスを表示するために示してきた方法は、以下のように要約されていました。
次の20
デフォルトの開始番号は1なので、番号20を指定するだけで、seqコマンドは自動的に1から20までカウントします。
次のように、2つの異なる番号の間でカウントする場合は、長い形式を使用する必要があります。
seq 35 45
標準出力に35から45の番号が表示されます。
Seqコマンドを使用してインクリメントを設定する方法
すべての偶数を1から100の間で表示したい場合は、次の例のように、seqのインクリメント部分を使用して一度に2つの数値にすることができます。
seq 2 2 100
上記のコマンドでは、最初の番号が開始点です。
2番目の数字は、各ステップで増分する数字です(例:2 4 6 8 10)。
3番目の数字は、最終的な数です。
Seqコマンドのフォーマット
ディスプレイやファイルに数字を送るだけでは、あまり便利ではありません。
ただし、3月の日付ごとにファイルを作成することもできます。
これを行うには、次のスイッチを使用します。
seq -f "%02g / 03/2016" 31
これにより、次のような出力が表示されます。
- 2015年1月3日
- 2014年2月3日
- 2015年3月3日
あなたは%02gに気づくでしょう。 e、f、gの3つの形式があります。
これらの異なる形式を使用する場合の例として、次のコマンドを試してみてください。
seq -f "%e" 1 0.5 3
seq -f "%f" 1 0.5 3
seq -f "%g" 1 0.5 3
%eの出力は次のとおりです。
- 1.000000e + 00
- 1.500000e + 00
- 2.000000e + 00
- 2.500000e + 00
- 3.000000e + 00
%fの出力は次のとおりです。
- 1.000000
- 1.500000
- 2.000000
- 2.500000
- 3.000000
最後に%gの出力は次のようになります。
- 1
- 1.5
- 2
- 2.5
- 3
Forループの一部としてのSeqコマンドの使用
seqコマンドをforループの一部として使用すると、同じコードを一定回数実行することができます。
たとえば、「hello world」という用語を10回表示するとします。
これはあなたがそれを行う方法です:
$(seq 10)のiのために
行う
エコー "hello world"
完了
シーケンスセパレータを変更する
デフォルトでは、seqコマンドは新しい行に各番号を表示します。
これは、使用したい任意の区切り文字に変更することができます。
たとえば、カンマを使用して数字を区切りたい場合は、次の構文を使用します。
seq -s、10
スペースを使いたい場合は、引用符で囲む必要があります:
seq -s "" 10
シーケンス番号を同じ長さにする
数字をファイルに出力すると、数字が異なる長さの数十と数百をステップアップすると、迷惑をかける可能性があります。
例えば:
- 1
- 2
- 3
- 10
- 11
- 99
- 100
- 200
- 1000
- 10000
すべての数字を次のように同じ長さにすることができます。
seq -w 10000
上記のコマンドを実行すると、出力は次のようになります。
- 00001
- 00002
- 00003
- 00010
- 00011
- 00099
- 00100
- 00200
- 01000
- 10000
逆順で番号を表示する
番号は逆順で表示できます。
たとえば、数字10〜1を表示する場合は、次の構文を使用できます。
seq 10 -1 1
浮動小数点数
シーケンスコマンドを使用すると、浮動小数点数を操作することもできます。
たとえば、0と1の間のすべての数値を0.1ステップで表示するには、次のようにします。
seq 0 0.1 1
概要
seqコマンドは、bashスクリプトの一部として使用するとより便利です。