2012-10-24 80 views

回答

4
grep -rn --include=*.yml "MYVAR" your_directory 

請注意,grep的情況下是默認敏感(通過-i告訴忽略大小寫),並接受正則表達式以及字符串。

+0

非常感謝。 ;) –

+0

我不知道這個開關!好一個。 –

1

你不給grep一個文件類型,只是一個文件列表。殼牌可擴展的模式給用grep正確的文件列表,但:

$ grep MYVAR *.yml 

如果您.yml文件沒有在同一個目錄中,可能會更容易加大了賭注,並使用find

$ find -name '*.yml' -exec grep MYVAR {} \+ 

這會從當前目錄和遞歸更深的地方找到任何以.yml結尾的文件。然後它將該文件列表替換成大括號{}。尾部\+只是一個特殊的find分隔符,表示-exec切換已完成。結果是匹配一個文件列表並將它們傳遞給grep。

0
find . -name \*.yml -exec grep -Hn MYVAR {} \; 
0

如果所有.yml文件在一個目錄,然後cd到該目錄,然後......

grep MYWAR *.yml 

如果所有.yml文件在多個目錄,然後cd到這些目錄的頂部,然後......

grep MYWAR `find . -name \*.yml` 

如果你不知道你的.yml文件位於這些目錄的頂部,並希望搜索整個系統...

grep MYWAR `find/-name \*.yml` 

最後一個選項可能需要root權限來讀取所有目錄。

上面的字符是鍵盤上的〜鍵。

相關問題