2011-09-30 79 views
2

我需要检查位于不同位置的几个文件以获取特定信息。在多个目录中搜索文件中的信息

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

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

/家庭/ CHECK1/

的/ opt /日志/

在/ var /状态/

回答

1

你也可以做(旁边'find') 做的grep的

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

循环过度'grep'可以带多个目录参数。 –

1

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

+0

这些目录位于不同的位置。例如。 /home/check1/ /opt/log/ /var/status/ – Stole

+0

@Stole:'grep -R pattern/home/check1// opt/log// var/status /' –

1

在非常简单的,把它归结为

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

在当前目录下的所有.c文件找到一个给定的词。

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

0

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

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

您还可以使用:

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

另一种选择是使用find获得的文件和管道它到grep搜索字符串。