Ersetzen von Text zwischen zwei bestimmten Zeichenfolgen

Ersetzen von Text zwischen zwei bestimmten Zeichenfolgen

Ich habe eine große Anzahl von Dateien mit dem veralteten CSS-Wert „hspace“ und möchte ihn durch einen anderen CSS-Stilwert ersetzen. Hier ist ein Beispiel: Wir haben:

hspace='5'

und das wollen wir ändern mit:

style="margin: 0 5px;"

Jede Datei enthält einen anderen Wert , hspaceeiner kann hspace='5'ein anderer sein und so weiter.hspace='2'hspace='7'

was ich möchte, ist, alle Dateien in einem bestimmten Verzeichnis zu finden:

hspace='ANY NUMBER'

und ersetzen durch:

style="margin: 0 5px;"

Irgendwelche Vorschläge, dies im Bash-CentOS-Betriebssystem zu tun?

Antwort1

Sie können diesen Befehl zum Ersetzen verwenden (vorausgesetzt, es handelt sich um GNU sed, wie es auf CentOS zu finden ist):

sed -i "s/hspace='\([0-9]*\)'/style=\"margin: 0 \1px;\"/g" filename.html

Zum Ersetzen in allen .html-Dateien:

find . -type f -name '*.html' -exec sed -i "s/hspace='\([0-9]*\)'/style=\"margin: 0 \1px;\"/g" {} +

verwandte Informationen