SED 更改最后一列文本



我想问一下如何使用sed将最后一列中的字母A更改为C。输入例如:

HETATM   18  H   UNK     0      12.447  20.851  23.373  0.00  0.00     0.167 HD
HETATM   19  C   UNK     0      11.406  19.947  21.942  0.00  0.00     0.033 A
HETATM   20  C   UNK     0      10.684  20.899  21.181  0.00  0.00     0.030 A    
HETATM   21  C   UNK     0       9.503  20.541  20.507  0.00  0.00     0.019 A    
HETATM   22  C   UNK     0       9.032  19.211  20.545  0.00  0.00     0.032 A    
HETATM   23  C   UNK     0       9.772  18.248  21.264  0.00  0.00     0.019 A    
HETATM   24  C   UNK     0      10.946  18.613  21.948  0.00  0.00     0.030 A    
HETATM   25  C   UNK     0       7.833  18.846  19.889  0.00  0.00     0.253 C    
HETATM   26  O   UNK     0       7.856  18.994  18.642  0.00  0.00    -0.267 OA

输出:

HETATM   18  H   UNK     0      12.447  20.851  23.373  0.00  0.00     0.167 HD
HETATM   19  C   UNK     0      11.406  19.947  21.942  0.00  0.00     0.033 C
HETATM   20  C   UNK     0      10.684  20.899  21.181  0.00  0.00     0.030 C    
HETATM   21  C   UNK     0       9.503  20.541  20.507  0.00  0.00     0.019 C    
HETATM   22  C   UNK     0       9.032  19.211  20.545  0.00  0.00     0.032 C    
HETATM   23  C   UNK     0       9.772  18.248  21.264  0.00  0.00     0.019 C    
HETATM   24  C   UNK     0      10.946  18.613  21.948  0.00  0.00     0.030 C    
HETATM   25  C   UNK     0       7.833  18.846  19.889  0.00  0.00     0.253 C    
HETATM   26  O   UNK     0       7.856  18.994  18.642  0.00  0.00    -0.267 OA

我像这样尝试了sed:

sed 's/[A*]$/C/'

但输出如下所示:

HETATM   26  O   UNK     0       7.856  18.994  18.642  0.00  0.00    -0.267 OC 

简单的 sed 方法:

sed 's/<A[[:space:]]*$/C/' file
  • < - 单词边界(假设A字符仅作为独立字符出现(

  • [[:space:]]* - 匹配字符串末尾可能的空格$


输出:

HETATM   18  H   UNK     0      12.447  20.851  23.373  0.00  0.00     0.167 HD
HETATM   19  C   UNK     0      11.406  19.947  21.942  0.00  0.00     0.033 C
HETATM   20  C   UNK     0      10.684  20.899  21.181  0.00  0.00     0.030 C
HETATM   21  C   UNK     0       9.503  20.541  20.507  0.00  0.00     0.019 C
HETATM   22  C   UNK     0       9.032  19.211  20.545  0.00  0.00     0.032 C
HETATM   23  C   UNK     0       9.772  18.248  21.264  0.00  0.00     0.019 C
HETATM   24  C   UNK     0      10.946  18.613  21.948  0.00  0.00     0.030 C
HETATM   25  C   UNK     0       7.833  18.846  19.889  0.00  0.00     0.253 C    
HETATM   26  O   UNK     0       7.856  18.994  18.642  0.00  0.00    -0.267 OA

最新更新