• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[solved] Dateien mit Einleitung kopieren

dragon05

Newbie
Ich arbeite mit OpenSuse10.2 und will Dateien anlegen.
Ich weis, dass es mit touch geht, aber ich hab eine Textdatei wo sich Benutzernamen befinden. Zum Beispiel root und Hans.
Kann ich mit der Textdatei eine Textdatei erstellen die root.txt heist und eine die Hans.txt heißt indem ich die Namen in der Textdatei irgendwie einleite?

:?:
 

oc2pus

Ultimate Guru
Code:
namen=`cat datei`
for i in "$namen"; do
    touch $i.txt
done
oder
Code:
namen=`cat datei`
for i in "$namen"; do
    echo $i > $i.txt
done
oder

Code:
while read line; do echo "${line}"; done < ursprungsdatei
 
Mit `` ist zu empfehlen, wenn mehrere Dateinamen in einer Zeile stehen, die 3. Variante, wenn Leerzeichen im Dateinamen vorkommen und diese stattdessen *nur* durch Newlines getrennt sind.
 
notoxp schrieb:
jengelh schrieb:
Mit `` ist zu empfehlen, wenn mehrere Dateinamen in einer Zeile stehen
Dazu müsste man aber die doppelten Hochkommas um $namen weglassen, oder?
Aber hallo -- so wie's da gegenwärtig steht passiert ganz komisches...
Code:
echo -en "foo bar\nmeh\n" >datei;
namen=`cat datei`;
for ....
# erstellt "foo", "bar" und "meh.txt" -- nicht gewollt!
Es sollte wohl auch ` touch "$i.txt"` heißen - immer Anführungszeichen setzen wenn man nicht gezielt etwas anderes beabsichtigt..
Code:
echo -en "foo bar\nmeh\n" >datei;
namen=`cat datei`;
for ....
# erstellt "foo meh\nbar.txt" - auch nicht ganz gewollt...
Ja, also "$namen" -> $namen.
 

oc2pus

Ultimate Guru
jengelh schrieb:
Aber hallo -- so wie's da gegenwärtig steht passiert ganz komisches...
Code:
echo -en "foo bar\nmeh\n" >datei;
namen=`cat datei`;
for ....
# erstellt "foo", "bar" und "meh.txt" -- nicht gewollt!
Es sollte wohl auch ` touch "$i.txt"` heißen - immer Anführungszeichen setzen wenn man nicht gezielt etwas anderes beabsichtigt..

da der Proband sich etwas unklar ausdrückte, habe ich ihm die 2.te Variante bewusst so angegeben, es erzeugt die Datei und in jeder Datei steht eben der Name drin. Sozusagen als Beispiel wie er neue Dateien anlegt und gleich mit Inhalt füllen kann ...
 

regexer

Advanced Hacker
oc2pus schrieb:
da der Proband sich etwas unklar ausdrückte, habe ich ihm die 2.te Variante bewusst so angegeben, es erzeugt die Datei und in jeder Datei steht eben der Name drin. Sozusagen als Beispiel wie er neue Dateien anlegt und gleich mit Inhalt füllen kann ...
OK. Alles klar. Allerdings sollte man meiner Ansicht nach bei beiden Varienanten bei dem for die doppelten Hochkommas um das $namen weglassen.
 
Oben