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  
9

Q3. 出力に行の繰り返しを許可するには?

入力ファイルに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  
3

Q4. shufに入力引数を行として扱わせるには?

これには、-eコマンドラインオプションを使用します。以下はその例です:

shuf -e 1 2 3 4 5 6 7 8 9

このコマンドが生成した出力は以下の通りです:

9  
1  
7  
8  
6  
2  
3  
5  
4

結論

確かに、shufは毎日必要とするツールではありませんが、このユーティリティについて学ぶことに害はありません。特にその学習曲線はそれほど急ではありません。ここで説明したことを練習したら、ツールのマニュアルページにアクセスしてさらに詳しく学んでください。

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。