如何让grep -r命令仅在当前目录执行?
使用
grep -r仅搜索当前目录的.txt文件 假设你现在在/home/folder1目录下,想要用grep -r命令只在当前目录的.txt文件里查找字符串"xxx",可以用以下几种方式填充命令的空缺部分:
方式1:直接匹配当前目录的.txt文件
最简单的方式是用shell通配符指定当前目录下所有.txt文件:
grep -r "xxx" *.txt
这里的*.txt会被系统解析为当前目录下所有后缀为.txt的文件集合,grep -r会搜索这些指定的文件,不会递归进入子目录(因为你没有把目录作为搜索目标)。
方式2:限定目录+文件类型+递归深度
如果你想明确指定搜索当前目录,同时严格限定只找.txt文件且不递归子目录,可以用GNU grep支持的--depth=0参数配合--include过滤:
grep -r "xxx" --include="*.txt" . --depth=0
各参数作用:
--include="*.txt":只处理后缀为.txt的文件.:指定搜索的起始目录为当前目录--depth=0:禁止递归进入子目录,仅搜索当前层级
小补充
如果你的grep版本不支持--depth参数,其实可以不用-r,直接用基础命令也能达到同样效果:
grep "xxx" *.txt
不过既然你明确要求使用grep -r,前面两种方式更贴合你的需求。
内容的提问来源于stack exchange,提问作者user798040
相关产品推荐
相关产品推荐

