フォーマットを変更せずにawkを使用して列を置き換える

フォーマットを変更せずにawkを使用して列を置き換える

PDBファイル(下記参照)があり、列5からAをBに変更する必要がありますが、元のファイル形式を変更せずに変更する必要があります。次の awk コマンドを使用して、A を B に変更できます。

$ awk '{sub(/A/,"B",$5); print;}' file 1 > file 2

ATOM      1  N   GLY A 302      77.282 -99.685 -10.078  1.00  0.00        N
ATOM      2  CA  GLY A 302      78.728 -99.868 -10.031  1.00  0.00        C
ATOM      3  C   GLY A 302      79.457 -98.600 -10.458  1.00  0.00        C
ATOM      4  O   GLY A 302      80.646 -98.435 -10.185  1.00  0.00        O

答え1

awk '{if ($5 == "A") gsub(/A/,"B",$5)}1' file > new_file

答え2

私はPDBファイルの多くを使用しています。 Vimでファイルを開いて実行する方が簡単だと思いました。:%s/ A / B /g

関連情報