【问题标题】:Searching for information in files in several directories在多个目录的文件中搜索信息
【发布时间】:2011-11-28 06:39:27
【问题描述】:

我需要检查位于不同位置的多个文件以获取特定信息。

那么,如何制作一个通过多个目录检查参数词的脚本呢?

目录位于不同的位置。例如。

/home/check1/

/opt/log/

/var/status/

【问题讨论】:

    标签: linux unix search directory grep


    【解决方案1】:

    你也可以做(在“find”旁边) 做一个

    for DIR in /home/check1 /opt/log /var/status ; do 
        grep -R searchword $DIR; 
        done
    

    【讨论】:

    • 循环是多余的,因为grep 可以接受多个目录参数。
    【解决方案2】:

    最简单的归结为

    find . -name '*.c' | xargs grep word
    

    在当前目录及以下的所有 .c 文件中查找给定的单词。

    grep -R 也可能适合您,但如果您不想搜索所有文件,这可能会成为问题。

    【讨论】:

      【解决方案3】:

      使用grep -R(递归)选项并给grep多个目录参数。

      【讨论】:

      • 目录位于不同的位置。例如。 /home/check1/ /opt/log/ /var/status/
      • @Stole: grep -R pattern /home/check1/ /opt/log/ /var/status/
      【解决方案4】:

      尝试使用搜索词和目录查找http://content.hccfl.edu/pollock/Unix/FindCmd.htm

      【讨论】:

        【解决方案5】:

        grep 的手册页应该解释你需要什么。无论如何,如果您需要递归搜索,您可以使用:

        grep -R --include=PATTERN "string_to_search" $directory
        

        你也可以使用:

        --exclude=PATTERN to skip some file
        --exclude-dir=PATTERN to skip some directories
        

        另一个选项是使用 find 获取文件并将其通过管道传输到 grep 以搜索字符串。

        【讨论】:

          猜你喜欢
          • 2010-11-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-07-12
          • 2016-02-29
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多