Linux按文件内容查找文件
2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>
find /home/monitorapp/pps_monitor_dbservice_tosave -name "*.*" | xargs grep "10.121.37.112"
查找?/home/monitorapp/pps_monitor_dbservice_tosave下所有包含10.121.37.112字符串的文件
遇到這樣一個(gè)面試題:在Linux下從abc目錄開始查找所有擴(kuò)展名為.log的文本文件,并找出內(nèi)容包含ERROR的文件。
查找命令:find /abc -name "*.log" |?xargs?grep "ERROR"
一般工作中常用按名稱查找、按時(shí)間或類型查找。find命令還可以結(jié)合xargs命令來查找。xargs可以從輸入中構(gòu)建和執(zhí)行shell命令。
xargs與find的-exec參數(shù)不同的是:
1、傳遞給exec的命令長度有限制,這樣在find命令運(yùn)行幾分鐘之后,就會(huì)出現(xiàn)溢出錯(cuò)誤。錯(cuò)誤信息通常是“參數(shù)列太長”或“參數(shù)列溢出”。而xargs命令與find命令一起使用。find命令把匹配到的文件傳遞給xargs命令,而xargs命令每次只獲取一部分文件而不是全部,不像-exec選項(xiàng)那樣。這樣它可以先處理最先獲取的一部分文件,然后是下一批,并如此繼續(xù)下去。
2、有些系統(tǒng)中,使用-exec選項(xiàng)會(huì)為處理每一個(gè)匹配到的文件而發(fā)起一個(gè)相應(yīng)的進(jìn)程,并非將匹配到的文件全部作為參數(shù)一次執(zhí)行。這樣在有些情況下就會(huì)出現(xiàn)進(jìn)程過多,系統(tǒng)性能下降的問題,因而效率不高;而使用xargs命令則只有一個(gè)進(jìn)程。另外,在使用xargs命令時(shí),究竟是一次獲取所有的參數(shù),還是分批取得參數(shù),以及每一次獲取參數(shù)的數(shù)目都會(huì)根據(jù)該命令的選項(xiàng)及系統(tǒng)內(nèi)核中相應(yīng)的可調(diào)參數(shù)來確定。
轉(zhuǎn)載于:https://my.oschina.net/weiweiblog/blog/402955
與50位技術(shù)專家面對(duì)面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的Linux按文件内容查找文件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: rsync同步文件到远程主机
- 下一篇: html5 XMLHttpRequest