Fornax
22-12-2008, 08:22
Hallo allerseits,
ich hoffe ihr könnt einem Neuling bei c<ygwin (bash unter Windows) helfen :)
Folgendes Problem:
Ich habe eine Liste von Dateinamen und Pfaden; sie ist folgendermaßen aufgebaut:
Dateiname <TAB> Pfadname
Sowohl der Dateiname als auch der Pfadname enthält massig Leerzeichen. Insbesondere der Pfad ist sehr lang (was zu meinem ursprungsproblem geführt hat).
Meine Absicht jetzt: Ich muß die Dateien kopieren, und da der Pfad so lang ist, will ich dem Pfad auf Quelle und Ziel je einen Laufwerksbuchstaben zuordnen, die Datei kopieren, Laufwerksbuchstaben löschen, nächste Datei.
Mein Skript schaut bisher so aus:
#!/bin/bash
for i in `cat links.txt`
do
subst X: "L:/`cut -f2 $i`"
if test -d "/cygdrive/m/`cut -f2 $i`"; then
subst Y: "M:/`cut -f2 $i`"
# cp "/cygdrive/x/`cut -f1 $i`" "/cygdrive/y/"
else
mkdir "/cygdrive/m/`cut -f2 $i`"
subst Y: "M:/`cut -f2 $i`"
# cp "/cygdrive/x/`cut -f1 $i`" "/cygdrive/y/"
fi
subst X: /D
subst Y: /D
done
Mein Problem ist, daß das Skript jede Zeichenfolge bis zum Leerzeichen als Argument versteht oder alles auf einmal (je nachdem ob ich IFS=$'\n' setze oder nicht).
Wie krieg ich das hin, daß er in der Schleife jede Zeile abarbeitet?`
Ich hab bisher for i in liste.txt, for i in `grep / liste.txt` und for i in `cat liste.txt` probiert, nix hilft :(
Danke schon mal :)
ich hoffe ihr könnt einem Neuling bei c<ygwin (bash unter Windows) helfen :)
Folgendes Problem:
Ich habe eine Liste von Dateinamen und Pfaden; sie ist folgendermaßen aufgebaut:
Dateiname <TAB> Pfadname
Sowohl der Dateiname als auch der Pfadname enthält massig Leerzeichen. Insbesondere der Pfad ist sehr lang (was zu meinem ursprungsproblem geführt hat).
Meine Absicht jetzt: Ich muß die Dateien kopieren, und da der Pfad so lang ist, will ich dem Pfad auf Quelle und Ziel je einen Laufwerksbuchstaben zuordnen, die Datei kopieren, Laufwerksbuchstaben löschen, nächste Datei.
Mein Skript schaut bisher so aus:
#!/bin/bash
for i in `cat links.txt`
do
subst X: "L:/`cut -f2 $i`"
if test -d "/cygdrive/m/`cut -f2 $i`"; then
subst Y: "M:/`cut -f2 $i`"
# cp "/cygdrive/x/`cut -f1 $i`" "/cygdrive/y/"
else
mkdir "/cygdrive/m/`cut -f2 $i`"
subst Y: "M:/`cut -f2 $i`"
# cp "/cygdrive/x/`cut -f1 $i`" "/cygdrive/y/"
fi
subst X: /D
subst Y: /D
done
Mein Problem ist, daß das Skript jede Zeichenfolge bis zum Leerzeichen als Argument versteht oder alles auf einmal (je nachdem ob ich IFS=$'\n' setze oder nicht).
Wie krieg ich das hin, daß er in der Schleife jede Zeile abarbeitet?`
Ich hab bisher for i in liste.txt, for i in `grep / liste.txt` und for i in `cat liste.txt` probiert, nix hilft :(
Danke schon mal :)