Saya memiliki sejumlah file log yang terlihat seperti ini:
/*
header
arbitrary number of lines
*/
blah blah
blah blah
Menggunakan perintah Bash sederhana (lebih disukai sed, bukan awk), bagaimana saya akan mengambil hanya baris header (idealnya termasuk penanda komentar)?
Saya sudah RTFM dan mencoba googling, juga ditemukan beberapa petunjuk , tapi tidak cukup untuk memulai.
Terima kasih!
sed
processing
AnC
sumber
sumber
Jawaban:
Jika Anda mengkonfirmasi hal-hal berikut, skrip dalam jawaban ini akan bekerja untuk Anda.
/*
"karakterIni akan cocok dengan semua baris dari awal file hingga akhir blok komentar.
Baris kedua (dengan "
#
"di awal) menyoroti pertandingan yang sedang dicari."
-n
"Di awal dan"p
"pada akhirnya minta sed untuk mencetak hanya bagian yang cocok.sumber
Richard
Perintah setelah pertandingan pertama! Jadi, Anda akan mendapatkan semua komentar mulai dari baris baru (persyaratan 1 tidak terbatas pada awal file) dalam file.sed -n '/^\/*/,/*\// p' $LOGFILE | sed -e '/*\//q'
dan lewaticat
. Tapi, saya belum senang tentang itu.Ini terlihat pada setiap file dengan ekstensi .log dan jika baris pertama adalah "/ *" saja, cetak semuanya hingga satu baris dengan "* /" saja.
sumber
Mungkin itu
sumber
Dalam hal, jika seperti saya Anda menemukan pertanyaan ini ketika mencoba untuk mengambil komentar gaya Doxygen, perintah sed adalah:
Untuk penjelasan lebih rinci, saya di-blog tentang itu.
sumber