2016-07-14 26 views
-1

我有類似grep "keyword" -B 3 log。它表現出很多類似的結果的:每個grep導致不同的文件

​​

我怎麼能每個grep結果保存爲獨立的文件,unique_id值的名字嗎?

+0

我投票結束這個問題作爲題外話,因爲它已被交叉發佈在更適合的Stack Exchange站點上。將來,請僅在單個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個行:

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

我只是用3個變量,p3p2p1來指代前面的行每行由處理後,其更新「一直在洗他們」

相關問題