我的文件包含以两个可能的关键字ATOM
和HETATM
开头的行。在其中一些行中,有一个第二个关键字HOH
出现在其他一些字符之后。在其他行中,还有其他3个字符的关键字XXX
,例如SOL
,而不是HOH
:
ATOM 1231 O XXX ...
HETATM1232 O SOL ...
HETATM1233 O HOH ...
我想要的是,只有当HETATM
出现在该行上时,才将ATOM
更改为HOH
。
我尝试了以下内容:
sed -E '/\(HETATM\)\(.*HOH\)/s//\1ATOM/' file
,它会出现illegal byte sequence
错误。我做错了什么?
答案 0 :(得分:2)
试试这个:
sed '/HOH/s/HETATM/ATOM/' file
输出:
ATOM 1231 O XXX ... HETATM1232 O SOL ... ATOM1233 O HOH ...
仅限包含HOH
搜索HETATM
并由ATOM
替换的行。