Ich habe zwei Dateien:Wie ein awk-Variable aus einer anderen Datei verwenden
- File1 enthält, Breite, Länge, Höhe und prozentuale Veränderung eines Parameters
- File2 enthält Höhe und durchschnittliche absolute Parameter.
File1
89.0 -179.0 40.0 -1.9290
89.0 -179.0 50.0 -1.7720
89.0 -179.0 70.0 -0.8970
89.0 -179.0 90.0 -0.4020
87.0 -179.0 40.0 -2.6490
87.0 -179.0 50.0 -2.4850
87.0 -179.0 70.0 -1.5370
87.0 -179.0 90.0 -0.7770
85.0 -179.0 40.0 -2.0090
85.0 -179.0 50.0 -1.8270
85.0 -179.0 70.0 -1.2930
85.0 -179.0 90.0 -0.5480
83.0 -179.0 40.0 -0.6930
83.0 -179.0 50.0 -0.4000
83.0 -179.0 70.0 -0.1050
83.0 -179.0 90.0 0.1200
81.0 -179.0 40.0 -0.3000
81.0 -179.0 50.0 -0.0780
81.0 -179.0 70.0 0.1760
81.0 -179.0 90.0 0.1430
File2
40.0000000 4.3764738518518698
50.0000000 4.3796847037037017
70.0000000 4.3780389444444472
90.0000000 4.3688861728394963
Nun, ich brauche eine Datei mit der geographischen Breite, Länge, Höhe und absolute Parameter zu erstellen. Grundsätzlich muss ich p in p (1 + a/100) ändern, wobei p der Durchschnittsparameter und a die prozentuale Änderung ist. Die resultierende Datei wird wie folgt aussehen:
89.0 -179.0 40.0 4.2920516
kann ich tun, während Schleife oder jede andere Schleife, dies zu tun, sondern ist an der Zeit für eine große Datei raubend. Ich glaube, es gibt ein One-Liner-Awk, das ich nicht herausfinden kann.
versuchte ich
awk 'FNR==NR{a[NR]=$2;next}{$4=a[FNR]*(1+$4/100)}1' file2 file1
Aber dieses funktioniert nur, wenn die Reihenfolge der Höhe derselben in den Dateien sowohl ist und wenn beide Dateien gleiche Anzahl von Zeilen haben.
Ich möchte nach der Höhe in der ersten Datei suchen, nehme den entsprechenden Durchschnittsparameter und verwende ihn als eine Variable für die zweite Datei. Kann es gemacht werden?
Vielen Dank –
was ein nicht {...} bedeuten? Ist es eine Sequenz? –
Es ist die Anweisung, die ausgeführt wird, wenn die vorherige Bedingung zutrifft. "$ 3 in einem" – karakfa