Grep 列表文件一次

Grep list files once

我正在寻找我的项目中的一些模式,但它在某些文件中重复了太多。我怎样才能让 grep 每个文件只显示一次?

我正在使用:

grep -R "my_pattern" *

你可以这样做,它会让 grep 只打印第一个匹配项:

grep -m 1 -R "pattern" *

您可以使用"uniq"命令:http://unixhelp.ed.ac.uk/CGI/man-cgi?uniq

grep -R "my_pattern" * | sort -u

这将进行排序并为您提供唯一值。

您可以使用 "count" 功能:

grep $TERM -crl $DIR

-c returns 每个文件中的命中计数,-l 删除任何计数为 0

如果您只想包含"my_pattern"的文件的名称:

grep -lR "my_pattern" *

但是上面的命令忽略了所有以点开头的子文件夹。

如果您想要子文件夹 .git 中的文件名包含 "https://github.com":

grep -lR "https://github.com" .git/*