Saya memiliki banyak output melalui sed dan awk.
Bagaimana saya bisa mengawali output dengan MULAI dan mengakhiri jawaban dengan END?
Misalnya, jika saya punya
All this code
on all these lines
and all these
Bagaimana saya bisa mendapatkan:
START
All this code
on all these lines
and all these
END
?
Upaya saya adalah:
awk '{print "START";print;print "END"}'
tapi aku mengerti
...
START
All this code
END
START
on all these lines
END
START
and all these
END
text-processing
sed
awk
regular-expression
Michael Durrant
sumber
sumber
Jawaban:
Ini berfungsi, seperti yang ditunjukkan oleh jasonwryan :
sumber
Ini bisa dilakukan
sed
dengan1i
berarti saya masukkan sebelum baris 1;$a
berarti sebuah ppend setelah baris terakhir. The$'…'
sintaks pesta khusus. Di shell lain, Anda harus bisa melakukan ini dengan:sumber
Jika Anda sudah menggunakan sed, Anda dapat menggunakan
1
untuk mencocokkan baris pertama dan$
untuk mencocokkan baris terakhir (lihat jawaban Scott ). Jika Anda sudah menggunakan awk, Anda dapat menggunakanBEGIN
blok untuk menjalankan kode sebelum baris pertama dan satuEND
blok untuk menjalankan kode setelah baris terakhir (lihat jawaban Michael Durrant ).Jika semua yang perlu Anda lakukan adalah menambahkan header dan footer, cukup gunakan
echo
dancat
.Dalam pipa, untuk menjalankan banyak perintah, gunakan
{ … }
untuk memberi tahu parser bahwa itu adalah satu perintah majemuk tunggal.sumber