【发布时间】:2011-11-28 06:39:27
【问题描述】:
我需要检查位于不同位置的多个文件以获取特定信息。
那么,如何制作一个通过多个目录检查参数词的脚本呢?
目录位于不同的位置。例如。
/home/check1/
/opt/log/
/var/status/
【问题讨论】:
标签: linux unix search directory grep
我需要检查位于不同位置的多个文件以获取特定信息。
那么,如何制作一个通过多个目录检查参数词的脚本呢?
目录位于不同的位置。例如。
/home/check1/
/opt/log/
/var/status/
【问题讨论】:
标签: linux unix search directory grep
你也可以做(在“find”旁边) 做一个
for DIR in /home/check1 /opt/log /var/status ; do
grep -R searchword $DIR;
done
【讨论】:
grep 可以接受多个目录参数。
最简单的归结为
find . -name '*.c' | xargs grep word
在当前目录及以下的所有 .c 文件中查找给定的单词。
grep -R 也可能适合您,但如果您不想搜索所有文件,这可能会成为问题。
【讨论】:
使用grep -R(递归)选项并给grep多个目录参数。
【讨论】:
grep -R pattern /home/check1/ /opt/log/ /var/status/
尝试使用搜索词和目录查找http://content.hccfl.edu/pollock/Unix/FindCmd.htm。
【讨论】:
grep 的手册页应该解释你需要什么。无论如何,如果您需要递归搜索,您可以使用:
grep -R --include=PATTERN "string_to_search" $directory
你也可以使用:
--exclude=PATTERN to skip some file
--exclude-dir=PATTERN to skip some directories
另一个选项是使用 find 获取文件并将其通过管道传输到 grep 以搜索字符串。
【讨论】: