【发布时间】:2015-11-04 15:27:31
【问题描述】:
我的输入文件有以下格式,
ATOM 1 Cal Cal 1 61.270 93.780 100.040 1.00 0.00
ATOM 2 Cal Cal 2 12.080 65.560 105.560 1.00 0.00
ATOM 13 Cal Cal 13 40.800 13.530 75.100 1.00 0.00
ATOM 200 Cal Cal 200 102.620 22.520 97.600 1.00 0.00
我想用值 '32.450' 替换 8th-cloumn 中的所有值,同时保持原始格式(间距)不变。即,预期的输出应该如下所示,
ATOM 1 Cal Cal 1 61.270 93.780 32.450 1.00 0.00
ATOM 2 Cal Cal 2 12.080 65.560 32.450 1.00 0.00
ATOM 13 Cal Cal 13 40.800 13.530 32.450 1.00 0.00
ATOM 200 Cal Cal 200 102.620 22.520 32.450 1.00 0.00
我尝试过简单的 awk 命令
awk -F " " '{
print $1" " $2" "$3" "$4" "$5" "$6" "$7" "'32.450'" "$9" "$10"
}' input.pdb > output.pdb
但是,它未能保留原始格式。
谁能帮我找到一个更好的方法来做到这一点,最好是使用 awk 或 gawk?
【问题讨论】:
-
您的预期输出确实更改了输入中的空格。例如。在输入中,第一行:
93.780 100.040两个字段之间有一个空格,但在输出中,你有两个空格:93.780 32.450请解释对齐规则。 -
文件为 pdb 格式。在这里,不是计算每列之间的空格,而是为每列中的值分配一组特定的空间