下午的時候有個同學問:他們服務器有一個5G的日志文件,如何從中截取出10.5-11.18的日志另一個文件日志文件有規(guī)范的時期格式,類似于web服務器日志。
2 回答

DIEA
TA貢獻1820條經(jīng)驗 獲得超3個贊
用sed好了,sed是按行處理的,不會將整個文件加載到內(nèi)存中,可以放心使用
要切出從2012-02-09到2012-09-10的所有數(shù)據(jù)行,(假設你的日志文件以yyyy-MM-dd的日期格式開頭)只需要:
sed -n '/^2012-02-09/,/^2012-09-10/p' whole.log > part.log

汪汪一只貓
TA貢獻1898條經(jīng)驗 獲得超8個贊
無論怎么樣你都必須使用某一個程序把這個文件讀出來,并且用一定的規(guī)則來加以過濾。在Linux中,使用cat和grep對文件進行操作已經(jīng)可以說是最經(jīng)濟合理的了。占用一定的系統(tǒng)資源是肯定的,具體的話跟你使用的cat,grep以及l(fā)inux內(nèi)核都有一定關系,所以可能會略有不同。一般不要在系統(tǒng)里出現(xiàn)那么大的日志文件,最好在一開始就做好日志的大小限制以及合理的日志轉(zhuǎn)儲和備份。
添加回答
舉報
0/150
提交
取消