awkコマンドを使用したテキストファイルの書式設定 [閉じる]

awkコマンドを使用したテキストファイルの書式設定 [閉じる]

私は次のコマンドを使用しています:

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

おすすめ記事