PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : String ersetzen mittels SED



netmaster
11.02.04, 12:37
Hallo.

Ich hänge mal wieder feste.
Ich versuche aus einem String alle Leerzeichen und Anführungszeichen zu löschen.
Ich versuche das ganze mittels SED.

cat datei | grep filter | sed s/\"/""/ | sed s/" "/""/ > dateineu

Leider wird nur das erste Anführungszeichen gelöscht und die folgenden nicht.
Wieso werden nicht alle Anführungszeichen im String gelöscht?
Und die Leerzeichen lassen sich überhaupt nicht mit SED löschen.
Was mache ich denn hier falsch?

zwerg
11.02.04, 12:59
sed datei -e s/\"//g | sed -e "s/ //g" > neuedatei
1. In deinen Ausdrücken zwischen den slashes brauchst du keine ", nur wenn wie im zweiten sed Befehl nen Leerzeichen drin ist, musst du das "einklammern".
2. Um nicht nur nach dem ersten Vorkommen deines Ausdrucks zu suchen muss an den letzten / nen g dran.

HTH, mfg, zwerg :)

netmaster
11.02.04, 17:08
Supi.
Funtzt bestens. Ich danke dir.

Der Gestreifte
11.02.04, 17:13
Etwas schöner kriegst Du es mit
sed s/[\ \"]//g datei hin.
Wenn Du nämlich mal nach 10 Zeichen suchst und das alles mit neun Pipes nacheinander machen willst...

zwerg
11.02.04, 22:47
Jepp, hast recht.
Aber wenn man die Sachen jeweils durch was anderes ersetzen will braucht man die ganzen Pipes schon..! :)

zwerg