2014-10-31 44 views
0

我有一個Nagios日誌文件,6G(一個月的日誌記錄),我想每天將它拆分成一個文件。意思是從1個文件:nagios.log獲取文件:nagios-2014-10-01.log到nagios-2014-10-31.log(31個文件)。按天拆分一個大的nagios日誌文件

每行一開始就有一個UNIX時間戳:

[1414709999] EXTERNAL COMMAND: PROCESS_SERVICE_CHECK_RESULT;servername;DiskTime;0;OK: \Physikalischer Datenträger(_Total)\Zeit (%): 0.479991|\Physikalischer Datenträger(_Total)\Zeit (%)=0.47999;55;90 

所以我必須找到一個方法來用grep從某一天的所有行,並將它們移到一個單獨的文件。 我已經嘗試過使用SED和GREP,但是我找不到REGEX這種時間戳的範圍。

+2

歡迎來到SO!分享你的嘗試;解釋您對縮小的一組樣本輸入的期望(例如幾天內的幾次輸入);並描述你所嘗試的地方不足。一些微調可能只是需要。 – J0e3gan 2014-10-31 09:10:03

回答

1
d=2014-10-01 
awk -v t=$(date -d $d +"%s") -F '[\[\]]' '$2 >= t {print}' nagios.log > nagios-${d}.log