You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用grep查找当前目录含指定串且不含另一指定串的文件

用Grep查找包含指定字符串但排除另一字符串的文件

要实现需求,你需要将两次grep操作结合:先筛选出包含目标字符串的文件,再从中排除包含指定字符串的文件。

修改后的命令(基础版)

grep -l --include=\*.tf --include=file.hcl --exclude=versions.tf -rnw '.' -e 'string\s*\"string\"\s*' | xargs grep -L --include=\*.tf --include=file.hcl --exclude=versions.tf -w -e '要排除的字符串'

更稳妥的版本(处理含空格的文件名)

如果你的文件名可能包含空格,建议添加-Z和-0参数避免错误:

grep -l --include=\*.tf --include=file.hcl --exclude=versions.tf -rnwZ '.' -e 'string\s*\"string\"\s*' | xargs -0 grep -L --include=\*.tf --include=file.hcl --exclude=versions.tf -w -e '要排除的字符串'

参数说明

  • 第一部分的grep -l:输出包含目标字符串的文件名(替换你原命令的-L,-L是输出不匹配的文件名)
  • 管道|配合xargs:将前一步的文件列表作为后一步grep的处理对象
  • 第二部分的grep -L:从传入的文件中,输出不包含排除字符串的文件名

内容的提问来源于stack exchange,提问作者Remerio

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 12:18:26