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