Saya perlu mengambil 100 baris log terakhir dari file log. Saya mencoba perintah sed
sed -n -e '100,$p' logfilename
Tolong beritahu saya bagaimana saya bisa mengubah perintah ini untuk secara khusus mengambil 100 baris terakhir .
Saya perlu mengambil 100 baris log terakhir dari file log. Saya mencoba perintah sed
sed -n -e '100,$p' logfilename
Tolong beritahu saya bagaimana saya bisa mengubah perintah ini untuk secara khusus mengambil 100 baris terakhir .
Jawaban:
Anda dapat menggunakan perintah tail sebagai berikut:
tail -100 <log file> > newLogfile
Sekarang 100 baris terakhir akan hadir di newLogfile
EDIT:
Versi ekor terbaru seperti yang disebutkan oleh twalberg menggunakan perintah:
tail -n 100 <log file> > newLogfile
tail
memerlukan sintaks tail -n 100 <filename>
...
Lihat, skrip sed yang mencetak 100 baris terakhir yang dapat Anda temukan di dokumentasi untuk 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
Bagi saya ini jauh lebih sulit daripada skrip Anda
tail -n 100 logfilename
jauh lebih sederhana. Dan itu cukup efisien, tidak akan membaca semua file jika tidak perlu. Lihat jawaban saya dengan laporan strace untuktail ./huge-file
: /unix/102905/does-tail-read-the-whole-file/102910#102910
"tail" adalah perintah untuk menampilkan bagian terakhir file, menggunakan sakelar yang tersedia dan tepat membantu kita untuk mendapatkan hasil yang lebih spesifik. saklar yang paling sering digunakan untuk saya adalah -n dan -f
RINGKASAN
tail [-F | -f | -r] [-q] [-b nomor | -c number | -n nomor] [file ...]
Sini
-n number: Lokasi adalah garis angka.
-f: Opsi -f menyebabkan tail tidak berhenti ketika akhir file tercapai, melainkan menunggu data tambahan ditambahkan ke input. Opsi -f diabaikan jika input standar adalah pipa, tetapi tidak jika itu adalah FIFO.
Ambil 100 baris log terakhir
To get last static 100 lines
tail -n 100 <file path>
To get real time last 100 lines
tail -f -n 100 <file path>
Saya tahu ini sudah sangat tua, tetapi, bagi siapa pun itu mungkin membantu.
less +F my_log_file.log
itu hanya dasar, dengan sedikit Anda dapat melakukan banyak hal yang lebih kuat. setelah Anda mulai melihat log, Anda dapat melakukan pencarian, pergi ke nomor baris, mencari pola, lebih banyak lagi dan lebih cepat untuk file besar.
itu seperti vim untuk log [sepenuhnya pendapat saya]
dokumentasi less less: https://linux.die.net/man/1/less
less cheatsheet: https://gist.github.com/glnds/8862214
len=`cat filename | wc -l`
len=$(( $len + 1 ))
l=$(( $len - 99 ))
sed -n "${l},${len}p" filename
baris pertama mengambil panjang (Total baris) file kemudian +1 di total baris setelah itu kita harus mengambil 100 catatan jadi, -99 dari total panjang kemudian hanya menempatkan variabel dalam perintah sed untuk mengambil 100 baris terakhir dari file
Saya harap ini akan membantu Anda.