我正在尋找瑣碎的解決方案,爲平凡的任務。使用bash在txt文件中搜索
我的bash腳本循環了幾個文件夾,其中產生了一些log.txt文件。如果每種情況下的某些操作在每個日誌中都成功執行,那麼應該在log.txt中的某處出現帶有句子「The unit is OK」的字符串,但是每個log.txt中它的實際位置(字符串的精確數量)是不同的!
我需要在我的循環中放入一些條件(可能使用IF)來檢查該句子是否實際存在於日誌文件中某處,如果是這樣 - 在執行腳本的終端中打印「一切正常」在特定文件夾循環的時刻,否則(如果該日誌中沒有該字符串)打印像「壞消息」一樣的!
將感謝不同的解決方案,尤其是如何在給定的日誌文件中找到所選短語的字符串。
謝謝!
格列布
你可以使用'grep -q':'if grep -qE'(pattern1 | pattern2 | pattern3)'「$ FILE」;然後' – andlrc
'$ FILE'周圍缺少雙引號。反引號('''')用於舊式命令替換,例如'富= \'命令\''。建議使用'foo = $(command)'語法。 '$()'內的反斜槓處理並不令人驚訝,'$()'更容易嵌套。見http://mywiki.wooledge.org/BashFAQ/082。而且 - 無用的'wc -l'和命令'['。相反,要求像上面註釋中顯示的@andlrc一樣詢問grep的退出狀態。 –