我有一个长文件,看起来像这样。
ATOM 55 CE1 LIG X 1 -2.921 4.159 -10.046 1.00 0.00 LIGA
我需要取第三列的第一个字母,在这里是C(但它会随行变化),并用这个字符替换我的最后一列LIGA。我需要在确保第12列和第13列之间的间距为11的情况下做这件事,如下图所示。我需要它与下面这行相同,以便我的程序能够理解它。
ATOM 55 CE1 LIG X 1 -4.950 9.318 4.387 1.00 0.00 C
我设法将第三栏的第一个字母复制到一个不同的文件中,然后从原文件中删除第13栏,并将不同的文件粘贴到原文件中,下面是几行。然而,我可以找到一种方法来解决间距问题。
cut -c 14 original.pdb > different.pdb
perl -pi -e 's/LIGA//g' original.pdb
paste original.pdb different.pdb >> joint.pdb
mv joint.pdb original.pdb
我知道awk在这里可能有用。我还没能实现它。我很感谢你的帮助!