Jens Kruszyk
wie kann ich den ersetzenden Text variabel halten, sprich heute möchte ich einem Script übergeben: mach aus foo bar, morgen: mach aus foo sonderbar...
Als bash-Skript koennte das z.B. so aussehen: #!/bin/bash if [ $# -ne 2 ]; then # Genau zwei Argumente sollen es sein echo >&2 "usage: $0 replacement file" exit 2 fi sed "s/foo/$1/g" "$2" In der bash bezeichnet $# die Anzahl der Argumente, $1, $2 etc. sind die entsprechenden Kommandozeilenargumente und $0 der Name des Skripts selbst. Wichtig sind bei den Argumenten von sed die doppelten Anfuehrungszeichen: Die stellen sicher, dass alles dazwischen (auch mit eventuell enthaltenen Leerzeichen etc.) als ein Argument behandelt wird, lassen aber darin (im Gegensatz zu Hochkommas) noch das Auswerten von Shell-Variablen zu. Wird dieses Skript dann mit SCRIPTNAME bar text aufgerufen, dann wird jedes Auftreten von foo in der Datei text durch bar ersetzt und das Ergebnis ausgegeben. Nur ein paar Sonderzeichen ('&', '\' und '/' fallen mir gerade ein) sollte man nicht im ersten Argument (dem ersetzenden Text) verwenden. Eilert -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Eilert Brinkmann -- Universitaet Bremen -- FB 3, Informatik eilert@informatik.uni-bremen.de - eilert@tzi.org - eilert@linuxfreak.com http://www.informatik.uni-bremen.de/~eilert/ --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com