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 /'