Linux, コマンド · 1 min read · Jan 11, 2026
初心者のためのLinux shufコマンドチュートリアル(例付き)

カードゲームをしたことがあるなら、シャッフルという用語に馴染みがあるでしょう。少し想像しにくいですが、ファイル内の行をシャッフルするLinuxコマンドラインツールがあります。このチュートリアルでは、いくつかのわかりやすい例を使って「shuf」コマンドの基本を説明します。
しかし、その前に、ここでのすべての例はUbuntu 18.04 LTSマシンでテストされていることを言及しておく価値があります。
Linux shufコマンド
Linuxのshufコマンドは、ランダムな順列を生成することができます。以下がその構文です:
shuf [OPTION]... [FILE]そして、ツールのマニュアルページは次のように説明しています:
入力行のランダムな順列を標準出力に書き込みます。以下は、shufコマンドがどのように機能するかをより良く理解するためのQ&Aスタイルの例です。
Q1. shufコマンドの使い方は?
基本的な使い方は非常にシンプルです。ファイル名を入力として渡すだけです。以下はその例です:
shuf test.txtさて、test.txtファイルには以下の行が含まれています:
1
2
3
4
5
6
7
8
9しかし、上記のshufコマンドは以下の出力を生成しました:
3
4
6
5
1
8
2
7
9行がシャッフルされたことがわかります。
Q2. 出力の行数を制限するには?
shufの出力の行数を制限したい場合は、-nコマンドラインオプションを使用します。これは、出力に含めたい行の最大数を表す数字を渡す必要があります。
例えば:
shuf -n 3 test.txt上記のコマンドは以下の出力を生成しました:
6
4
9Q3. 出力に行の繰り返しを許可するには?
入力ファイルに9行が含まれているとしますが、shufに出力でそれ以上の行を生成させたい場合(上記で説明した-nオプションを使用)、-rオプションを使用することで実現できます。
-r, --repeat
出力行は繰り返すことができますしたがって、shufに出力で25行を生成させたい場合は、次のコマンドを実行します:
shuf -r -n 25 test.txtこのコマンドが生成した出力は以下の通りです:
6
8
4
5
9
3
3
1
2
5
7
5
9
5
8
5
2
8
8
7
4
4
8
5
3Q4. shufに入力引数を行として扱わせるには?
これには、-eコマンドラインオプションを使用します。以下はその例です:
shuf -e 1 2 3 4 5 6 7 8 9このコマンドが生成した出力は以下の通りです:
9
1
7
8
6
2
3
5
4結論
確かに、shufは毎日必要とするツールではありませんが、このユーティリティについて学ぶことに害はありません。特にその学習曲線はそれほど急ではありません。ここで説明したことを練習したら、ツールのマニュアルページにアクセスしてさらに詳しく学んでください。
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。