我似乎找不到任何处理此问题的文档:有没有办法阻止 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 版本时无法使用。