GREP中的选择模式

时间:2017-08-16 15:38:43

标签: text grep

我有一个包含多行的大文件:

HETATM 4373 C117 OL     33       9.263  58.080  60.981  1.00  0.00      MEMB C
HETATM 4374 H17R OL     33       8.636  57.596  61.761  1.00  0.00      MEMB H
HETATM 4375 H17S OL     33       8.582  58.712  60.368  1.00  0.00      MEMB H
HETATM 4376 C118 OL     33      10.292  58.992  61.644  1.00  0.00      MEMB C
HETATM 4377 H18R OL     33       9.777  59.849  62.127  1.00  0.00      MEMB H
HETATM 4378 H18S OL     33      10.998  59.390  60.886  1.00  0.00      MEMB H
HETATM 4379 H18T OL     33      10.874  58.445  62.416  1.00  0.00      MEMB H
TER 
TER LEU 3030

我需要从文档中删除仅以HETATM或TER开头而不是TER +其他内容的行。 例如,使用

 grep -E "HETATM|TER" ${ref} > output

它选择两种类型的TER记录。如何更准确地指定第二个选择以获得

HETATM 4373 C117 OL     33       9.263  58.080  60.981  1.00  0.00      MEMB C
HETATM 4374 H17R OL     33       8.636  57.596  61.761  1.00  0.00      MEMB H
HETATM 4375 H17S OL     33       8.582  58.712  60.368  1.00  0.00      MEMB H
HETATM 4376 C118 OL     33      10.292  58.992  61.644  1.00  0.00      MEMB C
HETATM 4377 H18R OL     33       9.777  59.849  62.127  1.00  0.00      MEMB H
HETATM 4378 H18S OL     33      10.998  59.390  60.886  1.00  0.00      MEMB H
HETATM 4379 H18T OL     33      10.874  58.445  62.416  1.00  0.00      MEMB H
TER 

谢谢!

1 个答案:

答案 0 :(得分:0)

 grep '^HETATM$\|^TER$' file

将选择仅包含HETATMTER的行。

E.g

TER PRO 312

无法匹配。