8587835 sagte:

> cd '/home/michael/Desktop/test-dump' for i in *.html; do mv $i $i.bak ;
>  sed -e
> "s,http://www.htw-saarland.de/fb/gis/pi/edv-fallstudien/latex/,,";  <
> $i.bak > $i;
> erhalte ich als Resultat immer:
> bash: syntax error near unexpected token `do'
>
> Was ist falsch dran ?

Du hast da den einen oder anderen Syntax-Fehler drin:

> cd '/home/michael/Desktop/test-dump' for i in *.html; do mv $i $i.bak ;

Sollte sein:

cd '/home/michael/Desktop/test-dump' ENTER
for i in *.html; do mv $i $i.bak ;

Zu dem Thema solltest Du in der bash-Manpage etwas finden,
mehrere Befehle in einer Zeile kann man mit ";" abtrennen.

>  sed -e
> "s,http://www.htw-saarland.de/fb/gis/pi/edv-fallstudien/latex/,,";  <
> $i.bak > $i;

Da fehlt dann am Ende das "done".  Eine "for"-Schleife geht:

for <variable> in <liste> ; do <befehle> ; done

<liste> ist eine Liste von Werten, �ber die <variable> itertiert.
Mach als Beispiel mal "for i in 3 2 0; do echo $i ; done".  Besonders
am Anfang ist es sinnvoll die einzelnen Teile einer komplexen
Anweisung erstmal manuell zu machen und erst danach zusammenzusetzen.
Mache ich auch h�ufiger.

<befehle> k�nnen 1-n Befehle sein, wie Du sie eingibst, gegebenenfalls
mit ";" getrennt.

Jochen

-- 
This space is intentionally left blank.


----------------------------------------------------------------------------
PUG - Penguin User Group Wiesbaden - http://www.pug.org

Antwort per Email an