J'ai besoin d'ajouter une barre oblique de fin à toutes les balises d'entrée manquantes. Donc au lieu de
<input id="1" class="hello">
Je voudrais obtenir:
<input id="1" class="hello" />
Comment puis-je faire cela en utilisant sed ou un autre outil bash?
Réponses:
5 pour la réponse № 1Il n'est pas recommandé d'analyser et de substituer HTML à l'aide de regex. Mais si vous voulez une solution rapide basée sur un shell, la commande sed suivante devrait fonctionner:
sed "/<input /s#([^/])>#1/>#" file
Cela placera /
seulement si >
n'est pas déjà précédé d'une barre oblique.
PS: N'oubliez pas que votre balise HTML doit être complètement alignée.
1 pour la réponse № 2
Cela devrait fonctionner:
sed "/<input/s,[^/]>$,"/>," file