以下是第23行到第34行的一个列敏感文件的一部分。请查看第25和26行。第23到28行是正确的,因为它应该是连续的。
HETATM 21 O HOH 7 -1.609 5.551 -4.296 1.00 0.00 WAT O
HETATM 22 H HOH 7 -1.594 5.971 -3.395 1.00 0.00 WAT H
HETATM 23 H HOH 7 -1.048 4.730 -4.281 1.00 0.00 WAT H
HETATM 24 O HOH 8 -4.693 5.472 -0.557 1.00 0.00 WAT O
HETATM 25 H HOH 8 -3.881 4.900 -0.521 1.00 0.00 WAT H
HETATM 26 H HOH 8 -4.819 5.805 -1.485 1.00 0.00 WAT H
HETATM 27 O HOH 1 0.289 -5.035 5.663 1.00 0.00 WAT O
HETATM 28 H HOH 10 0.241 -4.604 -5.564 1.00 0.00 WAT H
HETATM 29 H HOH 1 -0.399 -5.750 5.605 1.00 0.00 WAT H
HETATM 30 O HOH 11 -1.741 -5.167 0.877 1.00 0.00 WAT O
HETATM 31 H HOH 0 -2.612 -4.754 0.636 1.00 0.00 WAT H
HETATM 32 H HOH 0 -1.819 -5.599 1.769 1.00 0.00 WAT H
但是,需要编辑第29至34行(以及此处未包含的超过34行)中的第25和26列。它们代表文件中水分子的ID号。因此,第29-31行的第25和26列应该是'9'而不是'1'或'10',第32-34行的第25和26列应该是'10'而不是'11'或'0'。并且34之后的所有行都遇到类似问题,我还想将第25和26列中的内容更改为“12”,“13”等。每组3行。因此预计最终结果将是这样的。
HETATM 21 O HOH 7 -1.609 5.551 -4.296 1.00 0.00 WAT O
HETATM 22 H HOH 7 -1.594 5.971 -3.395 1.00 0.00 WAT H
HETATM 23 H HOH 7 -1.048 4.730 -4.281 1.00 0.00 WAT H
HETATM 24 O HOH 8 -4.693 5.472 -0.557 1.00 0.00 WAT O
HETATM 25 H HOH 8 -3.881 4.900 -0.521 1.00 0.00 WAT H
HETATM 26 H HOH 8 -4.819 5.805 -1.485 1.00 0.00 WAT H
HETATM 27 O HOH 9 0.289 -5.035 5.663 1.00 0.00 WAT O
HETATM 28 H HOH 9 0.241 -4.604 -5.564 1.00 0.00 WAT H
HETATM 29 H HOH 9 -0.399 -5.750 5.605 1.00 0.00 WAT H
HETATM 30 O HOH 10 -1.741 -5.167 0.877 1.00 0.00 WAT O
HETATM 31 H HOH 10 -2.612 -4.754 0.636 1.00 0.00 WAT H
HETATM 32 H HOH 10 -1.819 -5.599 1.769 1.00 0.00 WAT H
到目前为止,我无法想出一个很好的模式来将这些时髦的数字替换为9,10等等。如果我可以在单个vim命令中替换所有这些3行的组而不是必须逐组进行,那将是很好的,因为有50-60组这些具有此问题。我之前所做的只是:26,28s/HOH 1/HOH 8
,这显然不是最有效的方法。
很抱歉在第一次尝试问题时不清楚,但是您的帮助将不胜感激。谢谢
答案 0 :(得分:0)
您的问题尚不清楚,但根据我的理解,尝试在视觉模式中选择矩形块可能会对您有所帮助。使用ctrl-v
中的OS X
或Linux
中的ctrl-q
或Windows
(正常模式下)。
答案 1 :(得分:0)
实际上,我要感谢大家的时间,并为造成这些混乱感到抱歉。我找到了一种方法,使用python的字符串格式化,因为模式非常模糊,而且我不习惯正则表达式模式,所以我无法想出一个简单的方法来执行它VIM。