我有應用程序日誌,我需要打印與執行時間超過10000毫秒的所有行的狀態。在下面的示例中,只打印第一行,因爲第2行不會超過10k毫秒,第3行不顯示任何執行時間。AWK打印行基於列
SERVICE_NAME: | API: GetContents | 20160927000511741 | EXECUTION TIME: 10130(ms)
SERVICE_NAME: | API: GetContentsExtend | 20160927000511741 | EXECUTION TIME: 22(ms)
SERVICE_NAME: | API: GetContentsExtended | 20160927000511741 | Current TN: -15698724705531331
我可以做多個步驟在一個文件中
店執行值做到這一點:
cat logfile.log | grep "EXECUTION TIME:" | awk '{print $NF}' | cut -d "(" -f1 | awk '{if ($1>9999) print $1}' >> input.txt
循環通過這個輸入文件遍歷相同的日誌
cat input.txt | while read line
do
cat logfile.log | grep $line"(ms)" >> output.txt
done
燦這可以通過一個命令來完成嗎?什麼讓我很困難的是執行時間值後有(毫秒)。
說明明顯,如果閾值變化的說法,而不是1,234 1,000然後用正則表達式匹配的是不是一個偉大的方式VS數值比較。 –