Shufコマンドは、LinuxおよびUnixライクなオペレーティングシステムでランダム順列を生成するために使用されます。 shufコマンドを使用すると、特定の入力ファイルの行をランダムにシャッフルできます。 ShufコマンドはGNUCoreutilsの一部であるため、インストールに煩わされることはありません。この簡単なチュートリアルでは、shufコマンドの例をいくつか紹介します。
例を含むShufコマンドチュートリアル
ostechnix.txtという名前のファイルがあります 以下の内容で。
$ cat ostechnix.txt line1 line2 line3 line4 line5 line6 line7 line8 line9 line10
ここで、上記の行をランダムな順序で表示してみましょう。これを行うには、次を実行します:
$ shuf ostechnix.txt line2 line8 line5 line10 line7 line1 line4 line6 line9 line3
見る?上記のコマンドは、「ostechnix.txt」という名前のファイルの行の順序をランダム化し、結果を出力します。
出力を別のファイルに書き込みたい場合があります。たとえば、出力を output.txtという名前のファイルに保存したいとします。 。これを行うには、最初にoutput.txtファイルを作成します:
$ touch output.txt
次に、 -oを使用してそのファイルに出力を書き込みます 以下のようなフラグ。
$ shuf ostechnix.txt -o output.txt
上記のコマンドは、ostechnix.txtファイルの内容をランダムにシャッフルし、出力をoutput.txtファイルに書き込みます。次のコマンドを使用して、output.txtファイルの内容を表示できます。
$ cat output.txt line2 line8 line9 line10 line1 line3 line7 line6 line4 line5
ファイルのランダムな行のいずれかを表示したいだけです。どうすればいいですか?シンプル!
$ shuf -n 1 ostechnix.txt line6
同様に、最初の「n」個のランダムなエントリを選択できます。次のコマンドは、最初の5つのランダムなエントリのみを表示します。
$ shuf -n 5 ostechnix.txt line10 line4 line5 line9 line3
ファイルから行を読み取る代わりに、 -eを使用して入力を直接渡すことができます。 以下のようなフラグ。
$ shuf -e line1 line2 line3 line4 line5 line1 line3 line5 line4 line2
番号をシャッフルすることもできます:
$ shuf -e 1 2 3 4 5 3 5 1 4 2
指定された範囲からいずれかをすばやく選択するには、代わりにこのコマンドを使用してください。
$ shuf -n 1 -e 1 2 3 4 5
または、以下のように任意の3つの乱数を選択します。
$ shuf -n 3 -e 1 2 3 4 5 3 5 1
特定の範囲内で乱数を生成することもできます。たとえば、1〜10の乱数を表示するには、次を使用します。
$ shuf -i 1-10 1 9 8 2 4 7 6 3 10 5
詳細については、manページを参照してください。
$ man shuf