【发布时间】:2018-02-07 04:18:13
【问题描述】:
我有一个非常烦人的问题:我正在使用 2 个文件,我需要替换原始文件的列,同时保持其格式不变。这是格式:
HETATM 1 CA LIG 1 38.925 -1.038 -22.754 1.00 0.00 Ca
HETATM 2 CA LIG 1 38.509 -0.159 -22.703 1.00 0.00 Ca
HETATM 3 CA LIG 1 37.873 -0.673 -22.309 1.00 0.00 Ca
HETATM 4 CA LIG 1 37.261 -1.434 -22.569 1.00 0.00 Ca
HETATM 5 CA LIG 1 37.800 -2.277 -22.363 1.00 0.00 Ca
HETATM 6 CA LIG 1 37.764 -1.612 -21.664 1.00 0.00 Ca
HETATM 7 CA LIG 1 36.833 -1.557 -21.515 1.00 0.00 Ca
HETATM 8 CA LIG 1 35.941 -1.643 -21.936 1.00 0.00 Ca
HETATM 9 CA LIG 1 35.959 -2.319 -22.634 1.00 0.00 Ca
HETATM 10 CA LIG 1 36.670 -2.501 -21.971 1.00 0.00 Ca
这是它应该的样子,但是,在任何操作后,这种格式都会丢失。
所以,现在我有一个 .xyz 格式的不同文件,我需要用 .xyz 文件中的 $6 列替换上述文件中的第 9 列 (1.00)。
10
CA 38.6675 -1.72133 -22.1513 6.90816 3.5 CA 38.925 -1.03771 -22.7538 6.87802 4 CA 38.5086 -0.158653 -22.7027 6.12023 3.5 CA 37.8732 -0.67308 -22.309 5.93085 3.75 CA 37.2605 -1.43401 -22.569 6.07069 3.25 CA 37.8002 -2.27692 -22.3632 6.39441 2.25 CA 37.7642 -1.61234 -21.6638 5.44254 3 CA 36.8325 -1.55711 -21.5145 5.45608 3.75 CA 35.9408 -1.64281 -21.936 5.20951 4 CA 35.9593 -2.31915 -22.6336 5.91997 4.5
我使用以下命令:
awk 'NR==FNR{c11[NR]=$6; next} {$9=c11[FNR]}1' data.xyz data.pdb > out.pdb
我确实得到了我在技术上需要的东西,但该文件未被识别为 .pdb,并且间距丢失:
这非常令人困惑,我不知道如何继续。非常感谢我们提前提供的帮助!
【问题讨论】:
-
阅读awk tutorial 并阅读有关
FS、OFS(Field Sep 和 Output Field Sep)的信息。祝你好运。 -
请在输出中使用代码标签,不要向我们展示图片,以便我们更好地理解您的问题并尽力帮助您。
-
谢谢,我都做了,因为我发现很难解释格式有何不同,代码标签不一定显示它,因此图片...
-
我对@987654330@ 文件不熟悉,但如果您需要对齐某些列,我建议使用
column命令!
标签: awk formatting