2011-09-30 84 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搜索字符串。