grep -l'string'路径打印路径后跟'是一个目录'

时间:2015-04-23 04:59:46

标签: bash unix grep

我不知道我做错了什么。我正在尝试让grep在目录中的文件中返回字符串匹配,但它只是返回路径后跟'是一个目录'。我查看了手册页并做了grep --help,但我不懂语法。

1 个答案:

答案 0 :(得分:3)

递归需要-r

以下内容将搜索some_directory,搜索包含something的文件:

grep -l -r something some_directory

如果您没有指定-rgrep认为您正在尝试搜索目录本身,并且它会做出相应的响应:

grep: some_directory: Is a directory

使用-rgrep了解您要查找以some_directory开头的目录树中的文件。

检索不带路径的文件名

要从文件名中删除路径,我们可以使用basename

grep --null -l -r something some_directory | xargs -0 -n1 basename

如果您只想在保留任何子目录的同时消除some_directory,请使用:

( cd some_directory; grep -l -r something . )