【问题标题】:Round a column in a CSV file to a fixed number of decimal places将 CSV 文件中的列四舍五入到固定的小数位数
【发布时间】:2017-01-06 10:57:23
【问题描述】:

我想使用 awk 将 CSV 文件转换为仅包含原始列的子集的新 CSV 文件。而且我还需要将包含浮点数的列之一四舍五入到小数点后 6 位。像这样的:

gawk -F "," '
{
 label=$1;
 value=$2; # how do I round this to 6 decimal places?
 print ","label","value","
}' ./in.csv >> ./out.csv

我查看了 printf 格式,但我不知道如何仅将其应用于某些列。

如何将 CSV 文件中的列四舍五入到固定的小数位数?

【问题讨论】:

  • 您能否分享您的输入文件和预期输出。如果要求仅将第 2 列格式化为小数点后 6 位。在下面使用 awk 'printf("%s,%-6s\n",$1,$2}' file.txt

标签: awk


【解决方案1】:

这应该解释这两种情况:

kent$  awk 'BEGIN{printf "%-6f, %-6f\n", 1/3, 5}'      
0.333333, 5.000000

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-17
    • 2018-05-06
    相关资源
    最近更新 更多