2014-09-22 101 views
0

我有一個名爲lists的目錄,並在其中有幾個子目錄,名爲lists-01,lists-02等等。 在每個子目錄中,我都有一個被稱爲清單的sript。 我想使用grep命令在每個腳本「清單」中搜索「margin」,並且想知道包含單詞「margin」的特定清單腳本。 我試過使用grep命令在子目錄中搜索

grep "margin" list*/checklist  

但是,這並沒有給出任何結果。

回答

0

如何:

find lists -name checklist -type f -exec grep -H margin {} \; 

,說...發現,在被稱爲lists目錄開始,以下所有目錄,所有的文件名爲checklist,並期待在他們的字margin打印的文件名,如果它在那裏。

如果您有現代的find,,您可以用+替換\;,以允許每個find搜索多個文件並提高您的查詢效率。

1

您可以使用--include來選擇你想要的文件:

grep -Rl --include='*checklist' "margin" . 

我試圖找出如何包括list-0*/目錄,還是沒能找到一種方法。


請注意,您的嘗試是相當準確的。你只需要添加-R遞歸:

grep -R "margin" list-[0-9]*/checklist 
0

它會搜索所有命名清單遞歸的文件,然後在這些文件上運行grep命令查找單詞「保證金」。 -l選項只會給你文件名和選項-w用於完全匹配。

find ~/list -type f -name checklist -exec grep -lw "margin" {} +