あるファイルの中からランダムに一行を取り出したいとしましょう。この目的のために便利なのは shuf
です。shuf
は多くの Linux 環境にインストールされているものですが、macOS では coreutils
をインストールすることで (e.g., brew install coreutils
) shuf
同等の機能を持つ gshuf
をインストールできます。この記事では gshuf
を使います。
次の内容の a.txt
というファイルがあるとします。
$ cat a.txt
あい
うえ
お
このファイルの各行をランダムにシャッフルするために gshuf
を使えます。
$ gshuf a.txt
うえ
お
あい
(実行するたびに結果は変わります)
gshuf
でファイルの各行をランダムに並び替えられるので、| head -n 1
を後ろに置くだけでランダムな一行を取り出せます。
$ gshuf a.txt | head -n 1
お