想要在各種文件里面找一個指定的文本,本來的方法太土了,在網上搜了一下,發現個好的方法,不過也有些問題。原文如下:
第一個,這個是看別人腳本的,配合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 ./*`
第三種方法雖然簡單,但是如果find的結果太多會導致出現參數列表過長。
所以還是第一種方法最好好用,簡單來說就是
find . -name "*" | xargs grep "Notifications"
等同於
grep Notifications `find ./*`
但可以避免參數列表過長
關於xargs詳細資料可以參見wiki:http://zh.wikipedia.org/wiki/Xargs