我不知道我在做什么错。我正在尝试让grep返回目录中文件中的字符串匹配项,但它只是返回路径后跟“是目录”。我查看了手册页并做了grep --help,但是我不理解其语法。
您需要-r
递归。
以下将搜索some_directory
包含以下内容的文件something
:
grep -l -r something some_directory
如果未指定-r
,则grep
认为您正在尝试搜索目录本身,并且它会适当响应:
grep: some_directory: Is a directory
使用-r
,grep
了解您要在目录树中查找以some_directory
。开头的文件。
要从文件名中删除路径,例如,我们可以使用basename
:
grep --null -l -r something some_directory | xargs -0 -n1 basename
如果您只想some_directory
在保留所有子目录的同时进行删除,请使用:
( cd some_directory; grep -l -r something . )
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句