复制列的第一个字符并用它替换现有列,同时根据需要保持间距

rbl8hiat  于 2022-09-21  发布在  Unix
关注(0)|答案(0)|浏览(51)

我有一个很长的文件,如下所示:

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可能会在这里工作。我没能做到这一点。我很感谢你的帮助!

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题