如何用grep搜索文本文件内容,排除文件名含指定关键词的文件?
解决grep排除特定文件名的内容搜索问题
直接在你原有的命令基础上添加--exclude参数就能解决问题,这个参数可以帮你排除符合指定模式的文件:
grep -TiPr --include="*.txt" --exclude="*Liszt*.txt" "Liszt" > ./matches.txt
参数说明:
--exclude="*Liszt*.txt":明确排除文件名中包含"Liszt"的所有txt文件,不管这个关键词在文件名的开头、中间还是结尾- 其余参数保留你原本的设置:
-T:避免输出中的制表符被自动转换-i:搜索时忽略大小写(如果不需要大小写兼容可以去掉这个参数)-P:启用Perl兼容的正则表达式语法-r:递归遍历当前目录及所有子目录--include="*.txt":只处理txt格式的文件
执行这个命令后:
- 像
Liszt Mazeppa.txt这种文件名带"Liszt"的文件会被直接排除,不会被检查内容 - 像
Masur LGO.txt这种文件名不含"Liszt"但内容包含目标关键词的文件,会被正常匹配并输出结果
内容的提问来源于stack exchange,提问作者Lord Lance
相关产品推荐
相关产品推荐

