私は次のコマンドを使用しています:
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
これにより、出力はタブで区切られます\t
。
printf
もう1つの可能性は、Archemarが提案したように使用することです。
awk 'NR>1 {printf("%4i %f\n",$1,$2);}' fort.75 > newfort.75
最初の列の形式は(この場合)4文字の幅で指定されます。必要に応じて調整してください。空白は空白""(末梢意図なし)で埋められ、タブ文字は使用されません。ただし、浮動小数点数も形式が変更されるため、この方法が適切であることを確認してください。それ以外の場合は、2番目の列を文字列として扱います。
awk 'NR>1 {printf("%4i %s\n",$1,$2);}' fort.75 > newfort.75