如何在排除特定目錄的同時使用grep進行遞歸搜索?如何使用grep在遞歸搜索中排除目錄?
背景:我有一個大的目錄組成的日誌文件,我想在搜索中消除。最簡單的方法是移動日誌文件夾。不幸的是,我不能這樣做,因爲項目授權的位置。
任何想法如何做到這一點?
如何在排除特定目錄的同時使用grep進行遞歸搜索?如何使用grep在遞歸搜索中排除目錄?
背景:我有一個大的目錄組成的日誌文件,我想在搜索中消除。最簡單的方法是移動日誌文件夾。不幸的是,我不能這樣做,因爲項目授權的位置。
任何想法如何做到這一點?
你在找這個嗎?
從grep的手冊頁:
--exclude-dir=DIR
Exclude directories matching the pattern DIR from recursive searches.
作爲替代,如果你可以在搜索中使用find
,也可能是有用的:
find [directory] -name "*.log" -prune -o -type f -print|grep ...
的
[directory]
實際上是當前目錄,如果你想(只是一個
.
會做)。
下一部分,-name "*.log" -prune
都在一起。它使用模式*.log
搜索文件名,並將它們從你的結果中刪除。
接下來是-o
(爲 「或」)
然後,-type f -print
它說 「打印(到stdout)的任何類型的是文件」。
這些結果應該包括在[directory]
中找到的每個文件(沒有返回目錄),除了以.log
結尾的文件。那麼你可以按照你的需要結果grep
。
謝謝了,我有時忘了,還有man page :) – Kiran
@KiranChandrashekhar請接受給定的答案。 – FailedDev
舊版本的grep沒有這個標誌,這是一個恥辱:(。 – ale