我正在使用一些比我想要的更冗长的输出,所以我试图使用 grep 来减少它。输出看起来像这样...
path/to/file1:
No Problems Found
path/to/file3:
Problem Found
我想毫无问题地过滤掉所有有关文件的输出。我能够通过管道输出来删除其中的一行grep -v "No Problems Found"
.我以为我可以按照 grep -B 1 -A 1 -v "No Problems Found"
的思路使用 -B 和 -A,但事实证明,当与 -v 结合使用时,它们不会反转。
导出文件后,我可以在 Vim 中非常快速地修改输出,但如果可以的话,我想直接在命令行上修改。有什么想法吗?这对Awk或Sed来说更好吗?
awk -v RS= -v ORS='nn' '/No Problems Found/' file
awk -v RS= -v ORS='nn' '!/Problem Found/' file
或 sed (osx 上的 gsed):
sed ':a;N;$!ba;s/[^n]*nNo Problems Foundn//g'