awk printf文件中的特定列 [英] awk printf a particular column in a file

查看:38
本文介绍了awk printf文件中的特定列的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想以科学计数法打印文件的特定列(在本例中为第7列),而其余列按原样打印.

I want to print a particular column (in this case column 7) of my file in scientific notation, whereas rest of the columns get printed as is.

如何仅对第7列有选择地使用 printf 而对前6列仅使用 print ?

How can I selectively use printf only for column 7 and just print for first 6 columns?

示例输入:

C   6   12.011  0.51    3.56E-01    4.60E-01    0.458399
CA  6   12.011  -0.15   3.55E-01    2.93E-01    0.291708
CAI 6   12.011  -0.25   3.55E-01    3.05E-01    0.30421
CC  6   12.011  0.62    3.56E-01    2.93E-01    0.291708

所需的输出:

C   6   12.011  0.51    3.56E-01    4.60E-01    4.58E-01
CA  6   12.011  -0.15   3.55E-01    2.93E-01    2.92E-01
CAI 6   12.011  -0.25   3.55E-01    3.05E-01    3.04E-01
CC  6   12.011  0.62    3.56E-01    2.93E-01    2.92E-01

推荐答案

您可以使用 sprintf :

$ awk -v OFS="\t" '{ $7 = sprintf("%.2E", $7) }1' input.txt
C   6   12.011  0.51    3.56E-01    4.60E-01    4.58E-01
CA  6   12.011  -0.15   3.55E-01    2.93E-01    2.92E-01
CAI 6   12.011  -0.25   3.55E-01    3.05E-01    3.04E-01
CC  6   12.011  0.62    3.56E-01    2.93E-01    2.92E-01

这篇关于awk printf文件中的特定列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆