grep遞歸查找子目錄


想要在各種文件里面找一個指定的文本,本來的方法太土了,在網上搜了一下,發現個好的方法,不過也有些問題。原文如下:

第一個,這個是看別人腳本的,配合find實現,-maxdepth指定深度,如果查找到底,就把-maxdepth刪掉
find /var/log/httpd/* -maxdepth 1 -type f -mtime +14 -print | egrep '.*\.gz$' | xargs -r /bin/rm

第二個,也是別人腳本,粗糙點,原先我是用這個來查找當前目錄的,修改為`ls -R`,可以遞歸查目錄
for i in `ls -R`;do grep rpm $i; echo $i; done;

第三個,比較好用啊,grep當前目錄和子目錄里文件的內容

grep Notifications `find ./*`

原文地址:http://www.187299.com/archives/1079

第三種方法雖然簡單,但是如果find的結果太多會導致出現參數列表過長。

所以還是第一種方法最好好用,簡單來說就是

find . -name "*" | xargs grep "Notifications

等同於

grep Notifications `find ./*`

 

但可以避免參數列表過長

關於xargs詳細資料可以參見wiki:http://zh.wikipedia.org/wiki/Xargs


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM