1

可能重复:
如何在列之间留出空间?

我有一个 PDB 文件,如下所示。我想在第 5 列中留出一个空格。

ATOM   2614  CB  ALA B1130      -3.307 -21.676   3.322  1.00 15.69           C
ATOM   2615  N   LEU B1131      -4.584 -19.000   2.466  1.00 18.48           N
ATOM   2616  CA  LEU B1131      -4.847 -17.586   2.701  1.00 18.86           C 

期望的输出

 ATOM   2614  CB  ALA B 1130      -3.307 -21.676   3.322  1.00 15.69           C
 ATOM   2615  N   LEU B 1131      -4.584 -19.000   2.466  1.00 18.48           N
 ATOM   2616  CA  LEU B 1131      -4.847 -17.586   2.701  1.00 18.86           C 
4

3 回答 3

1

如果您需要制表符分隔的输出,您可以这样使用awk

awk -v OFS="\t" '{ sub(/./, "& ", $5) }1' file

结果:

ATOM    2614    CB  ALA B 1130  -3.307  -21.676 3.322   1.00    15.69   C
ATOM    2615    N   LEU B 1131  -4.584  -19.000 2.466   1.00    18.48   N
ATOM    2616    CA  LEU B 1131  -4.847  -17.586 2.701   1.00    18.86   C
于 2012-12-26T10:58:08.997 回答
0
awk '$5 = substr($5, 1, 1) " " substr($5, 2)' /tmp/foo.pdb
于 2012-12-26T10:20:46.137 回答
0

如果你有傻瓜:

awk '{$5=gensub(/^./,"& ","g",$5)}1' file
于 2012-12-26T10:25:43.123 回答