ergy1983 Geschrieben 7. März 2010 Geschrieben 7. März 2010 Hallo liebes Forum, ich hänge einfach fest bei einem ziemlich dummen Problem udn hoffe, dass ihr mir diesen Thread verzeiht. Aber ich kriege es einfach nicht hin. Ich habe tonnenweise Dateien mit einem Namen wie clear_*.ill, deren Inhalt sind 56 Zeilen: clear_01_01_12 286.070998 317.298085 363.381098 383.392224 386.121974 373.427115 345.287062 Mein Skript sieht so aus: for i in clear_*.ill do cat $i |awk '{ if (NR==1) { printf("%s %s ", $1, $2) >> "3_erg_ill_clear.dat" } a==2 for (NR==a;a<56;a++){ printf("%s ", $1) >> "3_erg_ill_clear.dat" } if (NR==56) { printf("%s\n", $1) >> "3_erg_ill_clear.dat" } }' done Was apssieren sollte ist folgendes: Ich möchte eigentlich nur den Inhalt der jeweiligen Zeilen in der *.ill-Datei hintereinander in eine Zeile schreiben, sodass der Output so aussieht: clear_01_01_12 286.070998 317.298085 363.381098 383.392224 386.121974 373.427115 345.287062 Leider sieht aber mein Output so aus: clear_01_01_12 286.070998 clear_01_01_12 clear_01_01_12 clear_01_01_12 clear_01_01_12 clear_01_01_12 clear_01_01_12 Und ich ahbe schon so viele Varianten ausprobiert auch mit eine While-Schleife, aber bekomme es einfach nicht hin, NR einen Wert zuzuweisen. Er übergibt ja nur noch die ersten Zeilen. Hat jemand eine Idee? Und nochmals Entschuldigung für die blöde Frage. Manchmal hat man irgendwie Tomaten auf den Augen... Danke, Sandra Zitieren
charmanta Geschrieben 13. März 2010 Geschrieben 13. März 2010 Hm. AWK ist ein echter Ressourcenfresser, den nimmt man nur wenn nix anderes mehr geht. Die Dateien bestehen sowieso nur aus diesen 56 Zeilen ? for LAUF in CLEAR* do echo `cat $LAUF` >> OUTFILE done Die Feinarbeiten überlasse ich Dir Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.