ログファイルからログの最後の100行を取得する必要があります。sedコマンドを試しました
sed -n -e '100,$p' logfilename
このコマンドを変更して、最後の 100行を具体的に取得する方法を教えてください。
ログファイルからログの最後の100行を取得する必要があります。sedコマンドを試しました
sed -n -e '100,$p' logfilename
このコマンドを変更して、最後の 100行を具体的に取得する方法を教えてください。
回答:
見てください、sedのドキュメント(https://www.gnu.org/software/sed/manual/sed.html#tail)にある最後の100行を出力するsedスクリプト:
$ cat sed.cmd
1! {; H; g; }
1,100 !s/[^\n]*\n//
$p
$ sed -nf sed.cmd logfilename
私にとっては、スクリプトよりもはるかに難しいので
tail -n 100 logfilename
はるかに簡単です。そしてそれは非常に効率的です、それが必要でなければすべてのファイルを読みません。次のstraceレポートで私の回答を参照してくださいtail ./huge-file
:https : //unix.stackexchange.com/questions/102905/does-tail-read-the-whole-file/102910#102910
"tail"は、ファイルの最後の部分を表示するコマンドです。適切な使用可能なスイッチを使用すると、より具体的な出力を取得できます。私にとって最も使用されるスイッチは-nと-fです。
あらすじ
尾[-F | -f | -r] [-q] [-b number | -c番号| -n番号] [ファイル...]
ここに
-n number:場所は数行です。
-f:-fオプションを指定すると、ファイルの終わりに達してもtailは停止せず、追加のデータが入力に追加されるのを待ちます。-fオプションは、標準入力がパイプの場合は無視されますが、FIFOの場合は無視されません。
最後の100行のログを取得する
To get last static 100 lines
tail -n 100 <file path>
To get real time last 100 lines
tail -f -n 100 <file path>
私はこれが非常に古いことを知っていますが、それが役立つ人のために。
less +F my_log_file.log
これは基本的なことであり、少ない方がより強力なことができます。ログが表示され始めると、検索、行番号、パターンの検索などを実行できます。さらに、大きなファイルの場合は高速です。
ログのvimのようなものです[完全に私の意見]
オリジナルのlessのドキュメント:https : //linux.die.net/man/1/less
チートシートを減らす:https ://gist.github.com/glnds/8862214