GNU/Linux >> Belajar Linux >  >> Linux

Grep dalam file log besar (>14 GB) hanya x GB terakhir?

Solusi 1:

Saya kira Anda bisa menggunakan tail untuk hanya menampilkan sekitar 4GB terakhir dengan menggunakan -c beralih

-c, --bytes=[+]NUM
keluarkan NUM byte terakhir; atau gunakan -c +NUM untuk menampilkan yang dimulai dengan byte NUM dari setiap file

Anda mungkin juga dapat melakukan sesuatu dengan dd dengan menyetel bs=1 dan skip ke offset yang ingin Anda mulai, mis.

dd if=file bs=1024k skip=12g | grep something

Solusi 2:

Saya hanya memposting ini karena beberapa komentar memintanya.

Yang akhirnya saya gunakan adalah (file 15 GB). Ini bekerja sangat cepat dan menghemat banyak waktu saya.

tail -f -c 14G file | grep something

Saya juga melakukan benchmark yang sangat mendasar pada file yang sama. Saya menguji:

file grep xxx
// memakan waktu selamanya (> 5 menit)

dd if=berkas bs=1 lewati=14G | grep xxx
// sangat cepat <1 detik

ekor -c 14g | grep xxx
// cukup cepat <2 detik

tail hanya sedikit lebih pendek.

NB: akhiran yang digunakan g dan G berbeda per perintah (Ubuntu 15.10)

Solusi 3:

Ini tidak menjawab pertanyaan Judul, tetapi akan melakukan apa yang ingin Anda lakukan. Gunakan tac untuk membalikkan file, lalu gunakan grep untuk menemukan string Anda. Jika string Anda hanya muncul sekali atau beberapa kali dalam file, biarkan berjalan hingga menemukan jumlah kemunculan yang diketahui. Dengan begitu, jika asumsi Anda tentang letaknya di file salah, ia akan tetap menemukannya. Jika Anda ingin membatasinya, Anda dapat menggunakan head untuk melakukannya. Perintah head akan berada di antara tac dan grep.

Jadi perintahnya terlihat seperti:

tac < logfile | grep myString

Linux
  1. Hapus Koma Antara Kutipan Hanya Dalam File Yang Dibatasi Koma?

  2. Temukan Hanya Kejadian Pertama Menggunakan Only Grep?

  3. Cetak baris terakhir file, dari CLI

  1. diff untuk menampilkan hanya nama file

  2. Apa perbedaan antara grep, awk &sed?

  3. Bagaimana cara menangkap output dari perintah teratas dalam file di linux?

  1. Grep Word Dalam File Lalu Salin File?

  2. Bagaimana cara membuat ssh masuk sebagai pengguna yang tepat?

  3. File log ekor di beberapa mesin melalui ssh