2016-05-02 14 views
44

ログファイルから最後の100行のログを取得する必要があります。 私はsedコマンドに最後の100行ログを取得する

sed -n -e '100,$p' logfilename 

を試してみました私は、具体的最後 100行を取得するには、このコマンドを変更する方法を教えてください。

+0

これはマニュアルに記載されています:https://www.gnu.org/software/sed/manual/html_node/tail.html#tail、sedがどのようにエミュレートできるか –

答えて

80

次のようにあなたがtailコマンドを使用することができます。

tail -100 <log file> > newLogfile 

を今、最後の100行がnewLogfile

+8

最近のバージョンの 'tail'では、' tail -n 100 'という構文が必要であることに注意してください。 – twalberg

4

見て、あなたがのドキュメントで見つけることができる100個の最後の行を出力sedスクリプトで存在するであろうSED(https://www.gnu.org/software/sed/manual/sed.html#tail):それはあなたのスクリプトより方法がより困難である私にとって

$ cat sed.cmd 
1! {; H; g; } 
1,100 !s/[^\n]*\n// 
$p 

$ sed -nf sed.cmd logfilename 

ので

tail -n 100 logfilename 

はずっと簡単です。そして、それは非常に効率的です、それは必要でない場合は、すべてのファイルを読み取ることはありません。 tail ./huge-fileのstraceレポートを参照してください。https://unix.stackexchange.com/questions/102905/does-tail-read-the-whole-file/102910#102910

関連する問題