Saya perlu mengekstraksi data log dari banyak file log senilai terrabytes. Masalahnya adalah, data yang saya butuhkan dimulai dan diakhiri dengan pola yang dapat saya identifikasi, tetapi kode antara bisa berupa apa saja antara 10 dan 100+ baris.
Contoh:
Start
# lots of lines here
End
Saat ini, yang saya lakukan adalah grep -A 50 "Start"
, yang memberi saya Start dan 50 baris sesudahnya. Namun, dalam hampir semua kasus itu lebih atau kurang dari yang saya butuhkan. Lebih berarti file laporan yang dihasilkan tumbuh Gigabytes lebih besar dari yang seharusnya dan kurang berarti saya tidak mendapatkan informasi yang saya butuhkan.
Apakah ada cara untuk mengekstrak apa yang saya butuhkan, menggunakan alat Unix / Linux standar?
Jawaban:
Cobalah dengan awk:
atau jika Anda lebih suka sed:
sumber
sed
bekerja dalam hal ini? Saya mencoba mencari tahu sendiri memeriksa halaman manual pada ss64 dan melakukan beberapa percobaan coba-coba, tetapi saya masih belum mengerti. :) Terima kasih.