私は次のコマンドを使用しています:
awk 'NR>1 {print $1" "$2}' fort.75 > newfort.75
そして出力は次のようになる
7 -2.2964292555E+000
8 -2.3013363831E+000
9 -2.3071951989E+000
10 -2.3136811351E+000
11 -2.3207311925E+000
しかし、望ましいo/pは
7 -2.2964292555E+000
8 -2.3013363831E+000
9 -2.3071951989E+000
10 -2.3136811351E+000
11 -2.3207311925E+000
最初のフィールドの値は、すべて同じ幅になるようにフォーマットする必要があります。また、2 番目のフィールドは各行で同じ列から始まる必要があります。
答え1
おそらく、列で出力したいということなのでしょう (ただし、例ではデータも異なります)。その場合は、次を試してください。
awk 'NR>1 {print $1 "\t" $2}' fort.75 > newfort.75
出力は TAB 文字で区切られます\t
。
printf
もう一つの可能性は、Archemar の提案に従って使用することです:
awk 'NR>1 {printf("%4i %f\n",$1,$2);}' fort.75 > newfort.75
最初の列は (この場合は) 4 文字幅にフォーマットされています。必要に応じて調整してください。スペースはスペース " " (しゃれではありません) で埋められ、TAB は使用されません。ただし、浮動小数点数も再フォーマットされるため、問題ないか確認してください。問題がある場合は、2 番目の列を文字列として扱います。
awk 'NR>1 {printf("%4i %s\n",$1,$2);}' fort.75 > newfort.75