Masalah saya: Bagaimana menemukan garis dengan tanda kurung sudut kiri yang tak tertandingi dan mengganti tanda kurung ini dengan padanan HTML-nya.

Contoh masukan:

<dd>
     Pro 10g Flüssigkeit: 2g Wasserstoffperoxid <10% Tenside. ENTHÄLT: Sulfamidsäure,</dd>

Output yang diharapkan dengan mengganti string '<10%' yang tidak cocok:

<dd>
     Pro 10g Flüssigkeit: 2g Wasserstoffperoxid &lt;10% Tenside. ENTHÄLT: Sulfamidsäure,</dd>

Ada 'Umlaute' Jerman yang termasuk dalam contoh teks saya kalau-kalau mereka bisa 'mengacaukan sesuatu'...

Saya ingin menggunakan sed atau awk jika memungkinkan.

Saya telah membaca: Gunakan sed dengan regex dan (, Cara mengurangi (mengurangi) nomor dalam file dengan sed dan sed - deteksi tanda kurung regex di Linux dan T&J lainnya tapi saya bisa 'tampaknya saya tidak mengerti tentang regex. Maaf!

Terima kasih banyak atas bantuan Anda!

0
Bernie Reiter 9 Desember 2016, 03:34

1 menjawab

Jawaban Terbaik

Ini mungkin cukup baik:

$ sed -E 's/<([^>]+<)/\&lt;\1/g' file
<dd>
     Pro 10g Flüssigkeit: 2g Wasserstoffperoxid &lt;10% Tenside. ENTHÄLT: Sulfamidsäure,</dd>

Jika tidak, edit pertanyaan Anda, berikan contoh yang lebih lengkap (tetapi tetap ringkas dan dapat diuji) yang benar-benar mewakili masukan Anda yang sebenarnya.

Tidak ada yang istimewa tentang umlaute atau karakter input lainnya btw.

1
Ed Morton 9 Desember 2016, 02:00