我有一個日誌文件。我要掃描的字符串出現用於識別日誌中的故障的正則表達式
「RC = X」 如果> = 1出現一次時,其中RC = 0是不是真,那麼我想將其標記爲失敗
我能做到這一點作爲shell函數?
我有一個日誌文件。我要掃描的字符串出現用於識別日誌中的故障的正則表達式
「RC = X」 如果> = 1出現一次時,其中RC = 0是不是真,那麼我想將其標記爲失敗
我能做到這一點作爲shell函數?
您可以使用grep這個:
grep -q "RC = [^0]" logfile && {
echo "Logfile is a failure"
other commands
exit
}
的-q
把grep
到靜音模式:無輸出,該[^0]
爲RC任何非零值相匹配。如果找不到匹配,Grep將返回失敗狀態,如果有成功狀態,則返回成功狀態。 &&
是一個有條件的「和」,所以如果RC有任何非零值,那麼grep將成功,並且測試失敗。
或者,您可以將grep
放入if
語句中。在這種情況下:
if grep -s "RC = [^0]" logfile
then
echo "Logfile is a failure"
else
echo "Logfile is a success"
fi
更多的grep選項見man grep
。
'-s'只能抑制錯誤信息,但匹配行仍然打印。你也許是'-q'的意思? –
@BenjaminW。你是對的。我已經調整了我的答案。謝謝。 –
你寫了什麼? – codeforester