我正在嘗試使用grep來檢查某些日誌並只選擇最近的條目。該日誌對他們多年的交通繁忙,因此它是愚蠢做在第一個不匹配行後使grep停止
tac error.log | grep 2012
tac error.log | grep "Jan.2012"
等
並等待10分鐘,同時它通過數百萬行,我已經知道不會匹配。我知道在第一場比賽中有-m
選項可以停止,但我不知道如何在首先不匹配時停止。我可以做類似grep -B MAX_INT -m 1 2011
的東西,但這不是一個最佳解決方案。
grep可以處理這個問題還是會讓awk更有意義?
如果你願意成爲一個可以嘗試'tail -n N'提取N個最近的行,然後再通過grep進行管道傳輸,以消除今年的所有行。 –
我會使用awk或(實際)perl - 爲什麼不呢? – reinierpost
爲什麼你讓你的日誌文件變得如此之大?聽起來你需要找出關於日誌旋轉的信息。 – tripleee