在 grep 中排除路径

在 grep 中排除路径

我似乎找不到任何处理此问题的文档:有没有办法阻止 grep 在搜索多个文件时打印匹配行的文件路径?

答案1

man grep

-h, --no-filename
当搜索多个文件时,抑制输出中的文件名前缀。

用法:

grep -h 'search term' multiple files

例子:

$ grep network apache2 svnserve sudo 
apache2:# Required-Start:    $local_fs $remote_fs $network $syslog $named
apache2:# Required-Stop:     $local_fs $remote_fs $network $syslog $named
svnserve:# Required-Start:    $network $remote_fs $syslog
svnserve:# Required-Stop:     $network $remote_fs $syslog
$ grep -h network apache2 svnserve sudo
# Required-Start:    $local_fs $remote_fs $network $syslog $named
# Required-Stop:     $local_fs $remote_fs $network $syslog $named
# Required-Start:    $network $remote_fs $syslog
# Required-Stop:     $network $remote_fs $syslog

答案2

有 2 个开关grep可以帮到你

  • - 排除,在这里您可以直接使用通配符提供要排除的文件名/路径(&转义实际需要的通配符)

    例子:grep a ./* --exclude=*.log

  • --排除,在这里你可以提供一个包含要匹配和排除的字符串的文件名

我在用着GNU grep 2.5.4,以防使用你的 grep 版本时无法使用。

相关内容