2011-08-15 6 views
2

私は1つの列である文書 "1"を持っています。私はそれぞれ1つの列を持つ3つのファイルがあり、それらの列のそれぞれから文書1の行に無作為に選択された行を追加したい。awkを使ってランダムな線をつかんで新しい列に追加しますか?

ので

awk 'NR==10' moves.txt 'NR==1' propp_tasks.txt 

プリントアウト

よう
10.Qg3 Bb4+ 
    First function of the donor 

私はそれになりたいとき:

10 Qg3 Bb4+ First function of the donor 

のawkでこれを行うには良い方法はありますか?私はforループを使ってbashスクリプトを設定しようとしていましたが、索引をどのように循環させるかわからなかったので、文書1の行n、列2,3および4がそこに追加されます。最初のファイルの長さと、他の3つのファイルの組み合わせの長さが異なる場合は、本当に、本当に簡単... ​​

+0

ファイルの期間はどのくらいですか?彼らが記憶に収まるならば、それはケーキです、そうでなければ、パフォーマンスが問題になる可能性があります。 –

+0

あなたのawkラインを再確認しますか? awk:ファイルNR == 1を開くことができません。 – paulmelnikow

+0

彼らはあまり長くはありませんが、メモリに簡単に収まります。私はちょうど新しい行に追加するawkの構文を知らない – AI52487963

答えて

1
paste 1 <(cat 2 3 4 | sort -R) 

する必要があります私はその後、いくつかのより多くの作業が必要とされ、このように感じます。