循环遍历整个 AIX 文件系统以查找关键字出现

Posted

技术标签:

【中文标题】循环遍历整个 AIX 文件系统以查找关键字出现【英文标题】:Loop Through Entire AIX File System to Find a Keyword Occurrence 【发布时间】:2017-05-08 13:03:55 【问题描述】:

我如何通过整个文件系统来定位关键字 - 即遍历所有目录。我的嵌套 for 循环没有通过完整的文件系统。请问我的逻辑有什么问题?

    for d in `find . ! -name . -prune -type d|xargs -n 1 basename`
    do
    if [ -d "$d" ]
    then
    for d in ./*/ ; do (cd "$d" &&  echo directory "$d" && find . -exec grep -n -i "KeyWord"  /dev/null \;); done
    else
    echo "Processing file $d"
    fi
    done

【问题讨论】:

欢迎来到 Stack Overflow!请拿起tour,环顾四周,并通读help center,尤其是How do I ask a good question? 和What topics can I ask about here?。这个问题属于unix.stackexchange.com 第一个问题是您在两个循环中使用了相同的变量“d”。第二个循环没有考虑“d”是什么(文件或目录或其他)。 从您的代码中,我了解到您想对当前目录下的所有文件执行“grep 关键字”。你不需要它的脚本,可以用:find . -type f -exec grep -n -i "keyword" /dev/null \; 来完成。如果您还有其他应该使用脚本的原因,请描述它们。 您的解释帮助我理解 find 是我遍历文件系统所需的全部 - 使用 GNI grep 你有一个递归选项 grep -r KeyWord / 【参考方案1】:

从您的代码中,我了解到您想对当前目录下的所有文件执行“grep 关键字”。你不需要它的脚本,可以用:find . -type f -exec grep -n -i "keyword" /dev/null \; 来完成。 … – czvtools

【讨论】:

以上是关于循环遍历整个 AIX 文件系统以查找关键字出现的主要内容,如果未能解决你的问题,请参考以下文章

如何在 AIX 上擦除文件系统

查找 1 小时前创建的文件

在 find 命令中查找不支持 printf 的 AIX 系统上的前 N ​​个最旧文件

C#循环遍历列表以查找字符数

find 文件查找

Groovy - 如何退出每个循环?