/ / Добавете завършваща наклонена черта към <input ...>, така че ще изглежда така <вход ... /> - regex, shell, sed

Добавете крайна наклонена черта към <input ...>, така че ще изглежда като това <input ... /> - regex, shell, sed

Трябва да добавя крайна наклонена черта към всички входни маркери, на които това липсва. Така че вместо

<input id="1" class="hello">

Ще получа:

<input id="1" class="hello" />

Как мога да направя това с помощта на sed или друг инструмент за баш?

Отговори:

5 за отговор № 1

Не се препоръчва да анализирате и замествате HTML с помощта на regex. Но ако искате бързо решение на базата на обвивка, следващата команда sed трябва да работи:

sed "/<input /s#([^/])>#1/>#" file

Това ще стане / само ако > вече не е предшестван от наклонена черта.

PS: Имайте предвид, че вашият HTML маркер за въвеждане трябва да бъде изцяло в един ред.


1 за отговор № 2

Това трябва да работи:

sed "/<input/s,[^/]>$,"/>," file