Ich verwende diesen Befehl:
awk 'NR>1 {print $1" "$2}' fort.75 > newfort.75
und erhalte die Ausgabe als
7 -2.2964292555E+000
8 -2.3013363831E+000
9 -2.3071951989E+000
10 -2.3136811351E+000
11 -2.3207311925E+000
Aber das gewünschte o/p ist
7 -2.2964292555E+000
8 -2.3013363831E+000
9 -2.3071951989E+000
10 -2.3136811351E+000
11 -2.3207311925E+000
Die Werte im ersten Feld sollten so formatiert sein, dass sie alle die gleiche Breite haben. Außerdem sollte das zweite Feld in jeder Zeile in der gleichen Spalte beginnen.
Antwort1
Sie meinen möglicherweise, dass Sie eine Ausgabe in Spalten wünschen (obwohl die Daten in Ihrem Beispiel auch unterschiedlich sind). Wenn ja, versuchen Sie Folgendes:
awk 'NR>1 {print $1 "\t" $2}' fort.75 > newfort.75
Das würde Ihre Ausgabe durch ein TAB-Zeichen trennen \t
.
Eine andere Möglichkeit ist, Folgendes zu verwenden printf
, wie von Archemar vorgeschlagen:
awk 'NR>1 {printf("%4i %f\n",$1,$2);}' fort.75 > newfort.75
wobei die erste Spalte auf (in diesem Fall) 4 Zeichen Breite formatiert ist - nach Wunsch anpassen. Der Platz wird durch Leerzeichen " " aufgefüllt (kein Wortspiel beabsichtigt) und es wird kein TAB verwendet. Die Gleitkommazahlen werden allerdings auch neu formatiert, prüfen Sie also bitte, ob das für Sie in Ordnung ist. Wenn nicht, behandeln Sie die 2. Spalte als Zeichenfolge:
awk 'NR>1 {printf("%4i %s\n",$1,$2);}' fort.75 > newfort.75