Saya mencoba menemukan tiga baris ini:
<!--
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
-->
dan menggantinya dengan:
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
Ketika saya mencoba
sudo sed -i 's:<!-- <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> -->:<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />:' /myfile.xml
Tidak menemukannya, saya juga mencoba meletakkan \ n di dalamnya, tetapi tetap tidak berhasil:
sudo sed -i 's:<!--\n <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />\n -->:<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />:' /myfile.xml
Ini tidak membuang kesalahan apa pun itu hanya tidak menghilangkan komentar pada baris. Saran apa pun akan membantu terima kasih!
Berikut adalah deskripsi perintah multiline di SED: http://docstore.mik.ua/orelly/unix/sedawk/ch06_01.htm
Rasa sakit di pantat. Anda mungkin ingin mengikuti saran Eduardo dan menggunakannya
perl -i -p -e
sebagai gantinya.sumber
/<\!--/
: string yang cocok:X
: ini adalah label untuk perintah cabang "b"/-->/
: string yang cocoks@...@...@p
: strip "<! -", "->" dan hasil cetakd
: hapus ruang pola dan mulai siklus baruN
: jika tidak cocok dengan / -> / lalu tambahkan barisbX
: cabang ke: label Xp
: cukup cetak string yang tidak cocok dengan / <! - /dan metode kedua ini adalah sederhana salin & tempel substitusi kata demi kata untuk file teks berukuran kecil biasa (perlu file skrip shell)
sumber