每个grep结果到不同的文件

时间:2016-07-14 10:59:31

标签: awk grep

我有grep "keyword" -B 3 log之类的东西。它显示了很多结果,如:

  some trash
  unique_id=42
  one more trash
  keyword and usefull info

如何将每个grep结果保存到名称为unique_id的单独文件中?

1 个答案:

答案 0 :(得分: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来引用前面的行,并在处理每行之后更新它们“一个“