Linux-在指定文件类型中递归查找到目标字符串
命令
find . -iname '*.conf' | xargs grep "search string" -sl解析
. 當前目錄
按文件名查找:
-name: 查找時文件名大小寫敏感。
-iname: 查找時文件名大小寫不敏感
‘*.conf’
文件類型。比如這里查詢的是.conf類型的文件,要查找 xml結尾的 *.xml等等…..
xargs命令:
該命令的主要功能是從輸入中構建和執行shell命令
在使用find命令的-exec選項處理匹配到的文件時, find命令將所有匹配到的文件一起傳遞給exec執行。
但有些系統對能夠傳遞給exec的命令長度有限制,這樣在find命令運行幾分鐘之后,就會出現溢出錯誤。錯誤信息通常是“參數列太長”或“參數列溢出”。
這就是xargs命令的用處所在,特別是與find命令一起使用。
find命令把匹配到的文件傳遞給xargs命令,而xargs命令每次只獲取一部分文件而不是全部,不像-exec選項那樣。這樣它可以先處理最先獲取的一部分文件,然后是下一批,并如此繼續下去。
在有些系統中,使用-exec選項會為處理每一個匹配到的文件而發起一個相應的進程,并非將匹配到的文件全部作為參數一次執行;這樣在有些情況下就會出現進程過多,系統性能下降的問題,因而效率不高;
而使用xargs命令則只有一個進程。另外,在使用xargs命令時,究竟是一次獲取所有的參數,還是分批取得參數,以及每一次獲取參數的數目都會根據該命令的選項及系統內核中相應的可調參數來確定。
grep 后面的參數解析:
-l使得grep只打印匹配的文件名,而不打印匹配的行。只顯示包含匹配模板的行的文件名清單。
-l, –files-with-matches print only names of FILEs containing matches
-s, –no-messages suppress error messages
總結
以上是生活随笔為你收集整理的Linux-在指定文件类型中递归查找到目标字符串的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Oracle-PL/SQL基础
- 下一篇: Linux-压缩成带有时间文件名的文件