seqコマンドの使い方:数列生成から応用的なテクニックまで徹底解説

未分類

数列生成や繰り返し処理を行う際に便利なseqコマンドですが、その基本的な使い方だけでなく応用的なテクニックを知っておくと、作業効率が大幅に向上します。本記事では、seqコマンドの基本から応用までを徹底解説します。ぜひ、この機会にseqの使い方をマスターしましょう。

基本的な使い方

まずは、seqコマンドの基本的な使い方から押さえておきましょう。seqは数列を生成するためのコマンドで、シンプルな構文で使うことができます。

seq N

このコマンドは1からNまでの整数を生成します。例えば、seq 5を実行すると、1, 2, 3, 4, 5という数列が標準出力に表示されます。

seq 5

出力:

1
2
3
4
5

ステップ値の指定

デフォルトでは1刻みの数列が生成されますが、ステップ値を指定することもできます。

seq START STEP END

例えば、2から10まで2ずつ増加する数列を生成する場合は以下のようにします。

seq 2 2 10

出力:

2
4
6
8
10

逆順での数列生成

逆順で数列を生成することも可能です。例えば、10から1までの数列を1ずつ減少させて生成したい場合は、ステップ値を負に設定します。

seq 10 -1 1

出力:

10
9
8
7
6
5
4
3
2
1

フォーマットの指定

seqコマンドはフォーマットを指定して出力をカスタマイズすることができます。-fオプションを使用することで、出力形式を制御できます。

seq -f "Num: %03g" 3

出力:

Num: 001
Num: 002
Num: 003

出力の区切り文字の変更

通常、seqコマンドは改行で数値を区切って出力しますが、-sオプションを使えば好きな区切り文字を指定できます。

seq -s, 5

出力:

1,2,3,4,5

小数を含む数列の生成

seqは小数を含む数列も生成することができます。ステップ値を小数に設定すれば、例えば0.5ずつ増加する数列も生成可能です。

seq 0 0.5 2

出力:

0
0.5
1.0
1.5
2.0

基本コマンドの組み合わせ

seqと他のUNIXコマンドを組み合わせることで、さらに強力なツールとして利用することができます。例えば、数列をファイルに保存するにはseq>を使います。

seq 10 > sequence.txt

これで、1から10までの数列がsequence.txtというファイルに保存されます。

ループ処理での活用

forループとseqを組み合わせると、反復作業を効率化できます。たとえば、特定のコマンドを複数回実行する際に便利です。

for i in $(seq 1 3); do
  echo "Iteration $i"
done

出力:

Iteration 1
Iteration 2
Iteration 3

応用的なテクニック

LINQのようなパイプライン処理

複雑な処理を行いたい場合、seqの出力をパイプラインでフィルタリングや加工操作に流し込むことができます。例えば、偶数のみを抽出する場合は以下のようにします。

seq 10 | awk '$1 % 2 == 0'

出力:

2
4
6
8
10

名前付きプロセスの実行

seqはシェルスクリプトの中で反復処理を管理するのにも役立ちます。例えば、連番のついたファイルを一気に作成したいときなどです。

for i in $(seq 1 5); do
  touch "file_$i.txt"
done

このスクリプトは、file_1.txtからfile_5.txtまでのファイルを現在のディレクトリに作成します。

数値のカウントダウン

スクリプトやターミナル操作の中で、時間の待機やカウントダウンを行いたいと考えるケースもあるでしょう。その場合もseqがシンプルに解決してくれます。

for i in $(seq 5 -1 1); do
  echo "Countdown: $i"
  sleep 1
done
echo "Go!"

このスクリプトは5秒間のカウントダウンを実行します。

まとめ

seqコマンドは、単純な数列生成だけでなく、出力のカスタマイズや他のツールとの組み合わせによる複雑な処理にも対応できる柔軟なツールです。基本的な使い方から応用的なテクニックまでを使いこなせれば、日常の効率化に大いに貢献してくれることでしょう。ぜひ、この記事を参考に、さらに多くのseqの利用方法を試してみてください。

Bash玄

はじめまして!Bash玄です。

エンジニアとしてシステム運用に携わる中で、手作業の多さに限界を感じ、Bashスクリプトを活用して業務を効率化したのがきっかけで、この道に入りました。「手作業は負け」「スクリプトはシンプルに」をモットーに、誰でも実践できるBashスクリプトの書き方を発信しています。

このサイトでは、Bashの基礎から実践的なスクリプト作成まで、初心者でもわかりやすく解説しています。少しでも「Bashって便利だな」と思ってもらえたら嬉しいです!

# 好きなこと
- シンプルなコードを書くこと
- コマンドラインを快適にカスタマイズすること
- 自動化で時間を生み出すこと

# このサイトを読んでほしい人
- Bashに興味があるけど、何から始めればいいかわからない人
- 定型業務を自動化したい人
- 効率よくターミナルを使いこなしたい人

Bashの世界に一歩踏み出して、一緒に「Bash道」を極めていきましょう!

Bash玄をフォローする

コメント