2010-12-15 17 views
0

有名な引用を含むテキストファイルがあります。ファイルから読み込んだ行を配列にランダム化し、bashスクリプトで配列をループする方法

私は次のことを行いbashシェルスクリプトを書きたい:

  1. は「シャッフル」またはランダム化
  2. (各行が配列のエントリである)配列にファイルのすべての行を読み込み、配列は、「ランダム化された」アレイの上
  3. ループを配置し、現在の行

私はbashのスクリプトに新しいですが印刷されます。誰も私にこれを行う方法を示すことができますか?

私はLinux Ubuntuで動作しています。

これは私が現時点で持っているものです。

while read -r -a array 
do 
    print "${array[@]}" 
done < myfile.txt 

私は読出し線をランダム化する必要があります。私がしたいことをするためにスクリプトを修正する方法は誰でも知っていますか?

私はこのようなソート--randomソートを使用してみました:

done < cat myfile.txt | sort --random-sort 

しかし、bashの発行エラーメッセージ

+0

はStackOverflowの上で属しています。 – thedude19

+1

@ th3dude、まったく同じ質問を再度投稿するよう誘惑しないでください。投票するだけです。ありがとう! @タカシ、あなたの質問は自動的にスタックオーバーフローを移動されます*該当する場合*。もう一度同じ質問を投稿する必要はありません! – Arjan

+0

[ここでStackOverflowで答える](http://stackoverflow.com/questions/2153882/how-can-i-shuffle-the-lines-of-a-text-file-in-unix-command-line) –

答えて

0

あなたはfortuneプログラムを使用することができます。必要な区切り文字を含むようにファイルを変更する必要があります。エラーメッセージ解決するには

done < <(sort --random-sort myfile.txt) 

または

sort --random-sort myfile.txt | while 
関連する問題