2016-07-14 46 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来指代前面的行每行由处理后,其更新“一直在洗他们”