処理しなければならない大きなログファイルがあります。 1週間後、新しいものを手に入れます。新しい行(ログ)が追加されても同じです。ファイルの行を追加するシェルスクリプト
新しい追加ラインが必要です。
どうすればよいですか?
編集:私は今のところsedを試してみたが、
処理しなければならない大きなログファイルがあります。 1週間後、新しいものを手に入れます。新しい行(ログ)が追加されても同じです。ファイルの行を追加するシェルスクリプト
新しい追加ラインが必要です。
どうすればよいですか?
編集:私は今のところsedを試してみたが、
diff
成功していない変更が追加、および/または削除された行に制限されている限り、あなたはこれらのファイルの間の任意およびすべての違いを見つけることができるようになります。ほとんどのLinuxディストリビューションでは、GNU diffutilsの一部ですが、ほぼすべてのUinixライクなシステムに存在します。行がログファイルに追加し、私はあなたが古いものを持っていると仮定している場合
、あなたが試みることができる:
tail -$(($(cat newLogFileName | wc -l)-$(cat oldLogFileName | wc -l))) newLogFileName
2つのUUoC! 'wc -l <filename'を試してください。 –
くそ、私はポストの前に考えるべきではない...少し質問:UUoCsはどういう意味ですか? – Flyounet
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
@fabfile:試してみてください:' diff -old-line '-new-line-format = $'%l \ n ' - changed-group-format ='%> '--unchanged-group-format =' 'log1 log2'(残念ながら、 'sed'を使うよりも冗長で、おそらく移植性はあまりありません)。 –