awk格式化输出如何包含浮点数的符号

时间:2015-10-16 19:32:12

标签: awk

我想通过调整字段之间的间距来重新格式化文件。我已设法将内容添加到此表单中:

  130GLU    HB2  383   0.058   5.178   2.925
  130GLU     CG  384   -0.108   5.065   2.887
  130GLU    HG1  385   -0.079   5.007   2.963

我不能正确的是带有减号的花车。上述格式由awk '{printf " %6s%7s%5s %5.3f %5.3f %5.3f\n",$1,$2,$3,$4,$5,$6}' file生成。但是,我想得到以下内容:

  130GLU    HB2  383   0.058   5.178   2.925
  130GLU     CG  384  -0.108   5.065   2.887
  130GLU    HG1  385  -0.079   5.007   2.963

换句话说,考虑计算数字字符的登录,在这种情况下是5的{​​{1}}部分。我怎么能这样做?

1 个答案:

答案 0 :(得分:2)

只是一个简单的改变 - 看它是否有效:

awk '{printf "  %6s%7s%5s   % 5.3f   % 5.3f   % 5.3f\n",$1,$2,$3,$4,$5,$6}' file
Result:
  130GLU    HB2  383    0.058    5.178    2.925
  130GLU     CG  384   -0.108    5.065    2.887
  130GLU    HG1  385   -0.079    5.007    2.963

awk '{printf "  %6s%7s%5s   %+5.3f   %+5.3f   %+5.3f\n",$1,$2,$3,$4,$5,$6}'
Result:
  130GLU    HB2  383   +0.058   5.178   2.925
  130GLU     CG  384   -0.108   5.065   2.887
  130GLU    HG1  385   -0.079   5.007   2.963

编辑:

awk '{printf "  %6s%7s%5s  % 5.3f  % 5.3f  % 5.3f\n",$1,$2,$3,$4,$5,$6}' file
Result:
  130GLU    HB2  383   0.058   5.178   2.925
  130GLU     CG  384  -0.108   5.065   2.887
  130GLU    HG1  385  -0.079   5.007   2.963