这是我要运行的命令。
grep -r "printf" *.c
我正在尝试从.c
我的cwd中存在的所有文件中获取所有printf行。到目前为止,我的当前目录是Desktop,并且.c
在Desktop下的子目录中至少有10-15个文件,但是此命令根本不显示任何匹配项。那么在这种情况下我该如何做呢?
如果您这样做:
grep -r "printf" *.c
Shell将扩展*.c
到以.c
当前目录结尾的所有文件/目录,如果不存在这样的文件/目录,则将按字面意义对待该模式(大概没有nullglob
设置)。
如您所见,您的当前模式永远不会在当前目录下,因为您在当前目录中没有任何.c
文件,或者如果其中没有文件printf
,则导致输出为空。
您只需要用于--include
搜索选择性文件,并-r
进行递归遍历:
grep -r --include="*.c" "printf" .
上面的代码将从当前目录开始递归地在所有.c
文件中搜索字符串(模式)printf
。
如果您想遵循所有符号链接:
grep -R --include="*.c" "printf" .
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句