simples baash script

icecast

Member
Hallo,
eigentlich ganz simpel aber ich kriegs aufgrund fehlender Erfahrung leider nicht hin.

Ich habe eine Datei:
Berlin
Paris
Rom
....

Ich möchte jetzt in einem Script diese Datei einlesen.

Und eine Schleife aufbauen die z.Bsp:
Sprich er führt für jede Zeile in der Datei ein ein mkdir "Zeileninhalt" aus.

For * in Datei do;
mkdir * ;
end

Vielen Dank für sachdinliche Hinweise!
Viele Grüße IceCast
 
perl -e 'for(<>){mkdir($_)}' datei

(ungetestet, sollte aber so sein.)

wenns nicht funzt auf jemanden warten der sh/bash kann.
 
Noch eine andere Version, die sich an dein "for" Script anlegt:
Code:
#/bin/sh
for i in `cat <dateiname>`
do mkdir $i
done
Ebenfalls nicht getestet. ;)
 
'nen sort und uniq auf die Datei vorher kann nie schaden wenn sie groß und unübersichtlich ist...
 
Wenn man for verwendet wird die Zeile
Code:
IFS='
'
benötigt um mit Leerzeichen Klarzukommen.

Beim anlegen von Verzeichnissen sind sort und uniq wohl nicht wirklich hilfreich. Im übrigen nimmt man dann sort -u, so spart man sich eine Pipe.

Wenn die Namen keine Leerzeichen haben braucht man eigentlich kein Script:
# xargs < file.name mkdir -p

Mit Leerzeichen würde mein Skript so aussehen:
Code:
#!/bin/sh
IFS='
'
for name in $(cat); {
	mkdir -p "$name"
}

Das Skript würde dann mit:
# ./script.sh < file.name

aufgerufen.
 
Oder wie wäre es einfach mit
Code:
mkdir `cat dateiname`
so ganz trivial jetzt....

Zur Not noch mit Kamikazes Anmerkung wenn die Städtenamen Leerzeichen enthalten können...
 
Oder wie wäre es einfach mit
Code:
mkdir `cat dateiname`
so ganz trivial jetzt....

Das fliegt Dir aber um die Ohren, wenn die Datei sehr gross ist und die maximale Kommandozeilenlaenge ueberschritten wird.

Mal davon abgesehen: Backticks sind total altmodisch. Und das musst Du Dir jetzt von mir altem Sack sagen lassen. Tsktsk.
 
Vielen Dank Ihr lieben.
Ich hätte ja jetzt nicht mit so reger Beteiligung auf solch ein noob Farge gerechent.

Vielen Dank!
 
Zurück
Oben