カードゲームをプレイしたことがあるなら、シャッフルという用語を知っているでしょう。想像するのは少し難しいですが、ファイル内の行を正確に処理するLinuxコマンドラインツールがあります。このチュートリアルでは、わかりやすい例を使用して、「shuf」コマンドの基本について説明します。
ただし、その前に、ここでのすべての例がUbuntu18.04LTSマシンでテストされていることを言及する価値があります。
Linuxshufコマンド
Linuxのshufコマンドを使用すると、ランダム順列を生成できます。その構文は次のとおりです。
shuf [OPTION]... [FILE]
ツールのマニュアルページで説明されているのは次のとおりです。
Write a random permutation of the input lines to standard output.
以下は、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
output lines can be repeated
したがって、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は毎日必要な種類のツールではありませんが、特に学習曲線がそれほど急ではないため、このユーティリティについて学習しても害はありません。ここで説明した内容の練習が終わったら、ツールのマニュアルページにアクセスして詳細を確認してください。