当前位置: 首页 > 面试题库 >

如何从grep -R中排除目录?

国阳
2023-03-14
问题内容

我想遍历除“ node_modules”目录以外的所有子目录。


问题答案:

解决方案1(组合findgrep

该解决方案的目的不是要处理grep性能,而是要显示一个可移植的解决方案:还应该与busybox或2.5之前的GNU版本一起使用。

使用 find ,排除foo和bar目录:

find /dir \( -name foo -prune \) -o \( -name bar -prune \) -o -name "*.sh" -print

然后结合 find 使用和 grep 作为递归解决方案的非递归使用:

find /dir \( -name node_modules -prune \) -o -name "*.sh" -exec grep --color -Hn "your text to find" {} 2>/dev/null \;

解决方案2(递归使用grep):

您已经知道此解决方案,但是我添加了它,因为它是最新,最有效的解决方案。请注意,这是一种不易移植的解决方案,但更易于理解。

grep -R --exclude-dir=node_modules 'some pattern' /path/to/search

要排除多个目录,请--exclude-dir用作:

--exclude-dir={node_modules,dir1,dir2,dir3}

解决方案3(Ag)

如果您经常搜索代码,Ag(银搜索器)是grep的一种更快的选择,它是为搜索代码而定制的。例如,它会自动忽略中列出的文件和目录.gitignore,因此您不必继续将相同的繁琐的排除选项传递给grepfind



 类似资料:
  • 问题内容: 当我grep我的Subversion工作副本目录时,结果包括.svn目录中的许多文件。是否可以递归grep目录,但排除.svn目录中的所有结果? 问题答案: 如果您有GNU Grep,它应该像这样工作: 如果碰巧是在没有GNU Grep的Unix系统上,请尝试以下操作:

  • 我们在一个项目中有以下配置... 不幸的是,sdi-webserver项目有自己的log4j,它是从文件树中引入的,如下所示 谢谢,迪恩

  • 问题内容: 我正在尝试为所有JavaScript文件运行命令,但是如何排除特定目录? 这是我们正在使用的代码。 问题答案: 使用开关。例如,如果要排除目录,只需在查找命令中添加一个: 这是带有多个目录的示例: 在这里,我们排除了 dir1 , dir2 和 dir3 ,因为在表达式中,这是一个作用于条件(如果是 dir1 或 dir2 或 dir3 )的操作,并与进行与。 进一步的操作是,仅打印。

  • 问题内容: 我有一个名为“ XYZClientWrapper”的类,其结构如下: 我不希望为属性生成任何构建函数 龙目岛是否支持这种用例? 问题答案: 是的,您可以将@Builder放在仅包含所需字段的构造函数或静态(工厂)方法上。 披露:我是Lombok开发人员。

  • 本文向大家介绍如何从R数据框中删除空行?,包括了如何从R数据框中删除空行?的使用技巧和注意事项,需要的朋友参考一下 在调查或任何其他数据收集媒介期间,无法从所有单位获取所有信息。有时我们得到部分信息,有时什么也没有。因此,数据中的某些行可能完全为空白,而某些行可能具有部分数据。可以删除空白行,并使用有助于处理缺失信息的方法填充其他空值。 示例 考虑下面的数据框,它缺少一些行和一些值- 在这里,我们

  • 我的Scala/SBT项目使用了grizzled-slf4j和logback。第三方依赖项使用Apache Commons日志记录。