如何在使用通配符的grep命令中显示匹配内容对应的文件名?
解决grep不显示文件名的问题
你用cat x* | grep foo的方式会把所有文件内容合并成一个数据流传给grep,grep无法识别内容来自哪个文件,所以不会显示文件名。给你几个解决方法:
- 直接让grep处理目标文件:
grep foo x*
这种方式下grep会自动在每一行匹配结果前加上对应的文件名(多个文件时默认就会显示) - 强制显示文件名(哪怕只处理单个文件也生效):
grep -H foo x*-H参数的作用就是强制输出文件名 - 如果只需要列出包含匹配内容的文件名,不需要具体内容:
grep -l foo x*-l参数会只输出符合条件的文件名
内容的提问来源于stack exchange,提问作者gutsintheshell
相关产品推荐
相关产品推荐

