2016-07-14 10 views
-1

grep "keyword" -B 3 logのようなものがあります。それはのような結果の多くを示していますgrepの結果が異なるファイル

がどのように私は名前としてunique_id値を別のファイルに各grep結果を保存することができ ​​?他のものはゴミが本当にあるならば

+0

より適切なスタックエクスチェンジサイトにクロスポストされているので、この質問をトピックとしてクローズすることにしました。将来的には、あなたの質問を単一のStack Exchangeサイトに投稿してください。詳細については、[ここ](http://meta.stackexchange.com/q/64068)を参照してください。 http://unix.stackexchange.com/questions/295837/each-grep-result-to-different-file – Matt

答えて

1

、私はこれを使用します。

awk -F'=' '/unique_id/{f=$2} /keyword/{print > f}' file.txt 

ので、毎回あなたがファイル名として=を以下のものは何でも保存unique_idを参照してください。次に、キーワードが表示されるたびに、以前に保存したファイル名にその行を出力します。

あなたは3本の以前のラインを持つようにしたいならば:私はちょうど前の行を参照するために3つの変数、p3p2p1を使用して、各行がによって処理された後、それらを更新しています

awk -F'=' '/unique_id/{f=$2} /keyword/{print p3,p2,p1,$0 > f} {p3=p2;p2=p1;p1=$0}' OFS='\n' file.txt 

"それらをすべて1つずつシャッフルする"