awkを使用して、3つの列ファイルに1つの列を追加します。

awkを使用して、3つの列ファイルに1つの列を追加します。

awkを使用して、file.txtの既存の行列に新しい列を追加したいと思います。ファイルがあります

  -1.664405      -0.019498       0.487501
  -2.210156       0.326547       1.193717
  -2.260318      -0.104277      -0.256821
   2.189078      -2.103898       1.321050
   1.558565      -1.476110       0.967988
   1.764428      -2.955372       1.216211
   ...
   ...

こんなことが欲しい

O     -1.664405      -0.019498       0.487501
H     -2.210156       0.326547       1.193717
H     -2.260318      -0.104277      -0.256821
O      2.189078      -2.103898       1.321050
H      1.558565      -1.476110       0.967988
H      1.764428      -2.955372       1.216211
    ...
    ...

OとHはこの形で何百回も体系的に変化しなければなりません。

awkでこれを行う方法を知っている人はいますか?事前にありがとう

ベストアンサー1

どのくらいのインデントが必要かは明確ではないので、新しい最初の列と後続の列の間にスペースが1つしかないとします。

必ず必要な場合は、awk次のようにできます。

awk '(NR-1)%3{print "H", $0; next}{print "O", $0}'

sed他の方法も使用できる。

sed '1~3{s/^/O /p;d};s/^/H /'

おすすめ記事