2012-07-13 183 views
1

我有文字我想遞歸搜索mydir/。我通常會輸入grep -r "text to find" mydir/",但如果我想搜索除特定文件之外的所有文件,我會輸入什麼內容?grep遞歸獨家搜索

例如,我不想搜索文件「myfile.txt」,但它包含在目錄中。

我會輸入什麼?

回答

2

您可以使用下面的命令來排除文件:

grep -r --exclude="myfile.txt" "text to find" 
3

一個快速的方法是使用bash的擴展文件尋找。

還有一種增強否定水珠,可以使用如下:

shopt -s extglob 
grep -r "text to find" !(myfile.txt) 

另一種更靈活的方法是使用的findxargs的組合。使用find來篩選出只有你想要的文件,然後xargs將它們作爲參數傳遞給grep。

類似下面的高度重視和工作:

find -type f -not -name myfile.txt | xargs grep "text to find"