1. ホーム
  2. シェル

[解決済み】Unixのコマンドラインやシェルスクリプトでテキストファイルの行をシャッフルする方法は?

2022-03-27 08:09:38

質問

テキストファイルの行をランダムにシャッフルして、新しいファイルを作りたい。ファイルの行数は数千行になる可能性がある。

を使うにはどうしたらいいのでしょうか? cat , awk , cut などでしょうか?

解決方法は?

を使用することができます。 shuf . 少なくともいくつかのシステムでは(POSIXにはないようです)。

jleedevさんのご指摘の通りです。 sort -R というのも選択肢の一つかもしれません。少なくとも一部のシステムでは。まあ、おわかりでしょう。 指摘されている その sort -R は実際にはシャッフルせず、ハッシュ値に従って項目を並べ替えます。

[編集部注 sort -R ほとんど がシャッフルされることを除けば デュプリケート 行/ソートキーは常に最終的に 隣り合っている . 言い換えれば ユニーク 入力ライン/キーが真のシャッフルになります。出力順が ハッシュ値 ランダムなハッシュを選択することで、ランダム性が生まれます。 機能 - 見る マニュアル .]