98

使用 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
4

3 回答 3

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

-n打印行号,>并将 grep-results 重定向到输出文件。
如果你想“清理”结果,你可以使用管道过滤它们|,例如:
grep -n "test" * | grep -v "mytest" > output-file 将匹配所有具有字符串“test”的行,除了匹配字符串“mytest”的行(即开关-v) - 并将重定向结果到输出文件。 在这篇文章
中可以找到一些好的 grep-tips

于 2013-05-19T04:34:40.327 回答
40

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

grep ... > output.txt

grep没有在每个匹配之间添加空行的机制,但确实提供了诸如匹配行周围的上下文和匹配本身的着色等选项。有关详细信息,特别是and选项,请参见grep(1)手册页。-C--color

于 2013-05-19T04:32:04.450 回答
1

要在输出中的文本行之间添加一个空行grep以使其更易于阅读,请通过管道 ( |) 将其通过sed

grep text-to-search-for file-to-grep | sed G
于 2021-11-23T20:04:34.213 回答