使用 awk 格式转换器保留真实值



我最近问了以下关于使用 awk 进行格式转换的问题,由 Ed Morton 回答。但是,我需要帮助在此awk代码中进行调整。创建文件时,awk 脚本似乎向下舍入到最接近的整数,而不是保留实际的整数值(包含小数)。有没有办法修改此脚本以将实际值保留在数据集中。

例如:

church place 3.43
church institution 6.92
man place 86.39
man food 63.39
woman book 37.04

成为

@relation 'filename'
@attribute "place" string
@attribute "institution" string
@attribute "food" string
@attribute "book" string

@data
3,6,0,0,church
86,0,63,0,man
0,0,0,37,woman

而不是

@relation 'filename'
@attribute "place" string
@attribute "institution" string
@attribute "food" string
@attribute "book" string

@data
3.43,6.92,0,0,church
86.39,0,63.39,0,man
0,0,0,37.04,woman

有没有办法改变此响应中的awk以包含实际值,而不仅仅是四舍五入到最接近的整数?

打印数值时使用 %g 或 %s 代替 %d,例如:

printf "%g,", score[row,attr]

printf "%s,", score[row,attr]+0

请注意,使用 %s 时需要添加零,以便将空字符串转换为数字零。

最新更新