标识在特定文件中不包含特定字符串的子目录

拉姆巴拉汉德兰

我有一个名为的目录dir1,其中包含约800个子目录disp-001, disp-002, ... disp-800我需要找到子目录

  • 不包含文件stdout
  • 如果包含,则该文件不包含特定的string str1

标识不包含文件的子目录将在另一个问题中回答

$ find . -type d \! -exec test -e '{}/stdout' \; -print

但是,如果我尝试在上述命令中包含grep,它将无法正常工作

 $ find . -type d \! -exec test -e 'grep str1 {}/stdout' \; -print

如何包含字符串搜索以将感兴趣的目录返回给我?

don_crissti

您可以在那里修改任何解决方案,例如

  • 使用( -exec -exec )slmpatrick的解决方案配合使用(第二个exec仅在第一个返回false-print执行,仅在其中一个返回执行true):

    find . -type d \( ! -exec test -f '{}/stdout' \; -o ! -exec grep -q str1 '{}/stdout' \; \) -print
    

    甚至更短,如Costas所建议的

    find . -type d \! -exec grep -q 'str1' {}/stdout 2>/dev/null \; -print
    
  • terdon解决方案一起使用条件

    for d in **/
    do
      if [[ ! -f "$d"stdout ]] then
        printf '%s\n' "$d"
      else
        grep -q str1 "$d"stdout || printf '%s\n' "$d"
      fi
    done
    
  • 或者,使用zsh

    print -rl **/*(/e_'[[ ! -f $REPLY/stdout ]] || ! grep -q str1 $REPLY/stdout'_)
    

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何获取子目录中包含特定目录字符串的子目录中python文件的路径

搜索目录和子目录中包含特定字符串的所有文件并删除字符串

仅在子目录内的特定文件中查找字符串

如何从目录(包括其子目录)中获取其文件名包含特定字符串的所有文件的列表

在 perl 的所有子目录中使用特定字符串的特定文件的 grep

如何使用grep / egrep对包含“字符串”的子目录中的文件进行计数

查找不包含特定子目录的目录的名称

查找不包含特定子目录的目录的名称

在包含同一行字符串的工作目录(及其子目录)中搜索文件

获取包含文件名包含字符串的子目录的列表

不包含子目录的untar文件

grep在子目录中“文件中的字符串”,然后复制整个“文件夹”

包含功能在子目录中找不到特定文件

GNU Make:如果字符串包含“dirToExclude”,则从带有子目录的数组中删除字符串

使用findstr在子目录中搜索字符串?

对所有子目录中的文件子集中的字符串进行bash递归操作

使用单个内置命令在跨子目录的文件中查找子字符串?

在PowerShell中删除包含包含特定字符串的文件的目录

提取zip中的特定文件(包括子目录)

列出特定子目录中的文件

使用.gitignore取消忽略子目录中的特定文件

在几个子目录中查找特定文件

移动所有文件在特定的子目录中

删除随机创建的特定子目录中的文件

删除特定的子目录文件?

查找不包含特定字符串的文件

如何在LINUX中grep目录中的字符串及其所有子目录的文件?

在UNIX中删除特定的子目录

在包含特定子字符串的目录中查找文件