Forums Neueste Beiträge
 

Leerzeichen in Bereich ersetzen

26/11/2013 - 01:40 von Andreas Kohlbach | Report spam
Die Shell ist bash aus Debian.

Ich habe eine größere HTML Seite, und dort einige hundert

<.. id="hier steht ein string">

Da es illegal ist, innerhalb von <id> Leerzeichen zu haben, würde ich die
gerne ersetzen. Am Praktikabelsten wohl per "_". Es wàre auch möglich,
alles - und inklusive des ersten Leerzeichens - zu löschen. So dass aus
dem Beispiel oben entweder

<.. id="hier_steht_ein_string">

oder

<.. id="hier">

wird.

Vor dem 'id=' steht Verschiedenes, wie '<h1 ', '<h2 ' oder auch '<p ' und
anderes. Das Leerzeichen vor dem 'id=' muss bleiben.

Wie kann ich (Perl, sed und gawk stehen zur Verfügung, ich würde es am
liebsten aber innerhalb des Editors vi machen (mittels %s/)) nur die
Leerzeichen nach 'id=' ersetzen, ohne Leerzeichen außerhalb an zu fassen?

X'post de.comp.os.unix.shell und de.comm.infosystems.www.authoring.misc
mit F'up2 de.comp.os.unix.shell.
Andreas

Linux - The choice of a GNU generation
 

Lesen sie die antworten

#1 Ottmar Cartellieri
26/11/2013 - 07:55 | Warnen spam
2013/11/25 19:40:20 -0500 Andreas Kohlbach
()

[<.. id="hier steht ein string"> zu <.. id="hier_steht_ein_string">]

Wie kann ich (Perl, sed und gawk stehen zur Verfügung, ich würde es am
liebsten aber innerhalb des Editors vi machen (mittels %s/)) nur die
Leerzeichen nach 'id=' ersetzen, ohne Leerzeichen außerhalb an zu
fassen?



Mit GNU sed-Version 4.2.1 (Squeeze):

sed -e ': nochmal;s/\(id="[^ "]*\) /\1_/;t nochmal' Datei

Ottmar

Ähnliche fragen