Hi, irgendwie kriege ich ein sed-Kommando nicht hin: sed -e 's/[[:blank:]]{2,}/;/' soll mir alle Stellen, an denen Leerzeichen (oder tabs) mindestens 2x auftreten, in ein Semikolon umwandeln, tut es aber nicht (Aufruf in der bash-Kommandozeile), einige an verdächtige Stellen eingebaute Backslashs brachten auch nix. Sieht jemand, wo es klemmt? THX für Eure Hilfe -- Joerg Thuemmler sysadmin@vordruckleitverlag.de
* Joerg Thuemmler schrieb am 05.Mai.2003:
Hi,
irgendwie kriege ich ein sed-Kommando nicht hin: sed -e 's/[[:blank:]]{2,}/;/' soll mir alle Stellen, an denen Leerzeichen (oder tabs) mindestens 2x auftreten, in ein Semikolon umwandeln, tut es aber nicht (Aufruf in der bash-Kommandozeile), einige an verdächtige Stellen eingebaute Backslashs brachten auch nix. Sieht jemand, wo es klemmt?
sed -e 's/[[:blank:]]\{2,\}/;/' Wenn Du echo foo bar | sed ... sagst, dann frühstückt die shell das zuviele Blank. Du mußt schon echo "foo bar" | sed ... sagen. Achso, Du willst wahrscheinlich noch ein g anhängen, sonst wird nur das erste Vorkommen in der Zeile ersetzt: sed -e 's/[[:blank:]]\{2,\}/;/g' Bernd -- Bitte die Etikette beachten: http://www.suse-etikette.de.vu/etikette.html Bitte Realnamen angeben, kein Vollquoting, kein Html, PGP oder Visitenkarten benutzen. Signatur mit "-- " abtrennen, bei Antworten "Re: " voranstellen, sonst nichts. |Zufallssignatur 4
Am Montag, 5. Mai 2003 17:28 schrieb Bernd Brodesser:
* Joerg Thuemmler schrieb am 05.Mai.2003:
Hi,
irgendwie kriege ich ein sed-Kommando nicht hin: sed -e 's/[[:blank:]]{2,}/;/' soll mir alle Stellen, an denen Leerzeichen (oder tabs) mindestens 2x auftreten, in ein Semikolon umwandeln, tut es aber nicht (Aufruf in der bash-Kommandozeile), einige an verdächtige Stellen eingebaute Backslashs brachten auch nix. Sieht jemand, wo es klemmt?
sed -e 's/[[:blank:]]\{2,\}/;/'
Wenn Du
echo foo bar | sed ...
sagst, dann frühstückt die shell das zuviele Blank. Du mußt schon
echo "foo bar" | sed ...
sagen.
Achso, Du willst wahrscheinlich noch ein g anhängen, sonst wird nur das erste Vorkommen in der Zeile ersetzt:
sed -e 's/[[:blank:]]\{2,\}/;/g'
Bernd
Nee, war kein echo davor. Aber ich hatte kein "g" (das fiel mir dann gestern Abend ein) und da hab ich nicht bemerkt, daß die eine - richtige - Kombination der Backslashs - nämlich die vor den "{}" wenigstens 1x funktioniert hatte ... naja, hätte etwas genauer hinsehen sollen, sorry, will mich bessern... Danke an alle Helfer -- Joerg Thuemmler sysadmin@vordruckleitverlag.de
participants (3)
-
B.Brodesser@t-online.de
-
Joerg Thuemmler
-
Peter Wiersig