用awk在第5列给出空间

时间:2012-12-26 09:58:12

标签: awk

  

可能重复:
  How to give space between columns?

我有一个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 

3 个答案:

答案 0 :(得分:1)

awk '$5 = substr($5, 1, 1) " " substr($5, 2)' /tmp/foo.pdb

答案 1 :(得分:1)

如果你有傻瓜:

awk '{$5=gensub(/^./,"& ","g",$5)}1' file

答案 2 :(得分: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