Am Mit, 23 Jun 2004, schrieb Bernd Obermayr:
Hannes Vogelmann schrieb:
Am Mit, 23 Jun 2004, schrieb Bernd Obermayr:
Hannes Vogelmann schrieb:
Moin,
ich habe folgendes Problem:
Ich habe 2 Dateien die jeweils eine 2-reihige Tabelle enthalten, wobei die jeweils erste Reihe in beiden Tabellen gleich ist (forlaufender Index, 4095 Zeilen) und ich will diese zunächst nun in eine 3-reihige Tabelle überführen. Später muss durch einen mathematischen Formalismus aus den drei Reihen auch noch eine 4. Reihe generiert werden. Da die beiden Ausgangs-Dateien als Standart-output aus einem Messystem kommen, auf die stets der selbe Auswertungsalgorithmus angewendet werden soll brauche ich ein script, dass diese Dateien autmoatisiert verarbeiten kann und eine standartisierte Ausgangsdatei mit 4 Reihen erzeugt. Im Ergebnis sollte dann sowas wie
1. 2. 3. 4. Index Daten1 Daten2 Funktion(Index,Daten1,Daten2)
herauskommen.
Ich wollte es mit gawk realisieren. Allerdings ist mir nicht klar, wie man mit gawk Dateien zusammenführt. So habe ich die beiden Dateien erstmal sequentiell aneinandergehängt und wollte dann durch Verschieben des gwak-Parameters FNR die $2 von FNR+4095 auslesen, was aber so nicht hinhaut.
Vielleicht sollte man es besser gleich mit perl veruchen, aber damit kenne ich mich leider gar nicht aus.
Hat jemand eine Idee oder kann mir im groben aufzeigen, wie man da dran geht?
man join ;)
join file1 file2 | awk '{erg=$2*$3;printf("%-40s : %20.10f",$0,erg);}'
verblüffend einfach, aber macht genau das, was ich will ;-)) Da muss man auch erstmal draufkommen. Von joint hatte ich nie was gehört.
tststs Nicht 'joint', join ;) Tja manchmal hat man als alter unixer halt doch noch die Nase vorn ;))
ehemm,... join natürlich, aber meine Gedanken waren wohl gerade wo anders ;-). Eine Frage habe ich jetzt aber doch noch: mit printf macht awk keinen Zeilenumbruch und mit print funktioniert der Ausdruck "%-40s : %20.10f" nicht. Was der allerdings genau macht ist mir auch nicht klar, das 10f steht wohl für 10 Nachkomastellen wenn ich nicht irre aber das andere? cu Hannes