我得到一個大的日誌文件,我必須處理。 一週後,我會得到一個新的。這與添加新行(日誌)相同。shell腳本獲得一個文件的附加行
我只需要新添加的行。
我該怎麼做?
編輯:我已經試過到目前爲止SED但一直沒成功
我得到一個大的日誌文件,我必須處理。 一週後,我會得到一個新的。這與添加新行(日誌)相同。shell腳本獲得一個文件的附加行
我只需要新添加的行。
我該怎麼做?
編輯:我已經試過到目前爲止SED但一直沒成功
diff
將讓你找到這些文件之間的任何和所有的差異,只要改變僅限於添加和/或刪除線。在大多數Linux發行版中,它是GNU diffutils的一部分,但它幾乎存在於每個類似Uinix的系統中。
如果線追加到日誌文件,我想你有舊的,你可以嘗試:
tail -$(($(cat newLogFileName | wc -l)-$(cat oldLogFileName | wc -l))) newLogFileName
兩個UUoCs!試試`wc -l <filename`。 – 2011-01-19 18:23:41
comm -13 oldfile newfile
會得到你,只出現在newfile中的線條。
# get new.log
tail -n+$(($(wc -l < old.log)+1)) new.log
mv new.log old.log
有趣我自己沒有得到這個解決方案。謝謝。我還沒有找到自動刪除尾部「<」的方法,這樣做 「diff file1 file2 | sed s/\ <\ //」... – faboolous 2011-01-19 16:43:02
@fabfile:Try:`diff --old-line -format =''--new-line-format = $'%l \ n'--changed-group-format ='%>'--unchanged-group-format =''log1 log2`(不幸的是,比使用`sed`更詳細,可能不是很便攜)。 – 2011-01-19 19:01:10