将grep结果输出到文本文件,需要更干净的输出


81

使用Grep命令在一组文件中查找搜索字符串时,如何将结果转储到文本文件中?

还有用于Grep命令的开关,它提供了更整洁的结果以提高可读性,例如,每个条目之间的换行或一种证明文件名和搜索结果合理的方法?

例如,一个改变的地方...

./file/path: first result
./another/file/path: second result
./a/third/file/path/here: third result

./file/path: first result

./another/file/path: second result

./a/third/file/path/here: third result

14
我喜欢这些真正有用的“非实际问题”问题最终在数年后成为Google的热门搜索结果。
阿德里安·卡尔

Answers:


108
grep -n "YOUR SEARCH STRING" * > output-file

-n将打印行数和>将grep的,结果重定向到输出文件。
如果您要“清理”结果,则可以使用管道|进行过滤,例如:
grep -n "test" * | grep -v "mytest" > output-file 将匹配所有具有字符串“ test”的行,但不包括与字符串“ mytest”匹配的行(即switch -v)-并将重定向结果到输出文件。
一些不错的grep提示可以在这篇文章中找到


10
grep是仅在完成时才写入还是在处理内容时逐行写入?谢谢!
Crista23

5
@alfasin-单个'>'不会覆盖输出文件中的结果吗?我们不应该使用双'>>'来将结果附加到文件中吗?
GTodorov

3
@GTodorov是的,如果您想追加使用>>
Nir Alfasi 2014年

12
对于将来的访问者,@ Crista23问题的答案是grep完成后会写出来
HBeel

35

程序输出的重定向由外壳执行。

grep ... > output.txt

grep没有在每个匹配项之间添加空白行的机制,但是提供了诸如匹配行周围的上下文以及匹配项本身的颜色之类的选项。有关grep(1)详细信息,请参见手册页,尤其是-Cand--color选项。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.