awk printf文件中的特定列 [英] awk printf a particular column in a file
本文介绍了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屋!
查看全文