Unix のコマンドラインまたはシェルスクリプトでテキストファイルの行をシャッフルするにはどうすればいいですか? 質問する

Unix のコマンドラインまたはシェルスクリプトでテキストファイルの行をシャッフルするにはどうすればいいですか? 質問する

テキスト ファイルの行をランダムにシャッフルして新しいファイルを作成したいです。ファイルには数千行が含まれる場合があります。

cat、、awkなどでそれを実行するにはどうすればよいですかcut?

ベストアンサー1

使用できますshuf少なくとも一部のシステムでは (POSIX にはないようです)。

jleedev が指摘したように、sort -Rこれもオプションの 1 つかもしれません。少なくとも一部のシステムでは、お分かりでしょう。指摘されている実際にはsort -Rシャッフルするのではなく、ハッシュ値に従ってアイテムをソートします。

[編集者注:重複した行やソートキーが常に隣り合う点を除けば、sort -R ほぼシャッフルです。言い換えれば、一意の入力行やキーがある場合にのみ、真のシャッフルとなります。出力順序はハッシュ値によって決定されますが、ランダム性はランダムハッシュ関数の選択によって生じます。マニュアル

おすすめ記事