Jan Trippler schrieb:
Am Montag, 16. Februar 2004 23:45 schrieb Reinhold Plew:
Michelle Konzack schrieb:
[...]
wie kann man in einem Bash-Script eine Datei Zeile f�r Zeile von der ersten bis zur lezten auslesen ?
versuch es mal mit awk, ist echt praktisch:
#script FILE=<inputfile> C_FILE=<outputfile>
cat ${FILE} | \
Useless use of cat award ;-) Das kannst Du dem awk gleich als Argument mitgeben.
Oh Danke, einer mehr in der Sammlung ;-)
awk -v CFILE=$C_FILE ' \
Die Ausgabe des awk kannst Du auch gleich hinten an den awk h�ngen.
BEGIN { FS="[:[EMAIL PROTECTED]" # Falls Du die Felder der Zeile trennen m�chtest
Daf�r gibt es eine awk-Option.
printf("echo 'Script gestartet...'") > CFILE
Huch? Was macht der echo innerhalb des printf? Soll die Ausgabe ein Shell-Scipt werden?
Im Original schon
} { printf("%s", $0) >> C_FILE # Ausgabe der gesamten Zeile printf("%s - %s", $1, $3) >> C_FILE # Ausgabe Feld 1 + 3 } END { printf("echo Script beendet...") >> CFILE } #cript Ende
Hier fehlt noch mindestens der ', der das awk beendet: } '
Beim Kopieren verloren gegangen
Meine Version: FILE=<inputfile> C_FILE=<outputfile>
awk -F "[:[EMAIL PROTECTED]" '\ BEGIN { printf "echo 'Script gestartet...'\n"; } { printf "%s\n", $0; # alternativ: print $0; printf "%s - %s\n", $1, $3; END { printf "echo Script beendet...\n"; } ' $FILE >$C_FILE
Ist schon richtig, allerdings war der komplette Script f�r jemanden gedacht, der nur 'seriell' lesen kann und von daher alles sch�n nacheinander (<daten rein>-<funktion>-<daten raus>) haben wollte.
Jan
Gruss Reinhold
--
Haeufig gestellte Fragen und Antworten (FAQ): http://www.de.debian.org/debian-user-german-FAQ/
Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)

