2011-01-19 59 views
0

我得到一個大的日誌文件,我必須處理。 一週後,我會得到一個新的。這與添加新行(日誌)相同。shell腳本獲得一個文件的附加行

我只需要新添加的行。

我該怎麼做?

編輯:我已經試過到目前爲止SED但一直沒成功

回答

1

diff將讓你找到這些文件之間的任何和所有的差異,只要改變僅限於添加和/或刪除線。在大多數Linux發行版中,它是GNU diffutils的一部分,但它幾乎存在於每個類似Uinix的系統中。

+0

有趣我自己沒有得到這個解決方案。謝謝。我還沒有找到自動刪除尾部「<」的方法,這樣做 「diff file1 file2 | sed s/\ <\ //」... – faboolous 2011-01-19 16:43:02

+0

@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

0

如果線追加到日誌文件,我想你有舊的,你可以嘗試:

tail -$(($(cat newLogFileName | wc -l)-$(cat oldLogFileName | wc -l))) newLogFileName 
+0

兩個UUoCs!試試`wc -l <​​filename`。 – 2011-01-19 18:23:41

0

comm -13 oldfile newfile會得到你,只出現在newfile中的線條。

0
# get new.log 
tail -n+$(($(wc -l < old.log)+1)) new.log 
mv new.log old.log 
相關問題