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.
> 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?
> }
> {
> 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
> 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? Dann sollte man aber noch ein \n einbauen, der
printf macht das n�mlich nicht automatisch.
> }
> {
> 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
> }
Hier fehlt noch mindestens der ', der das awk beendet:
} '
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
Jan
--
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)