我最近问了以下关于使用 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 时需要添加零,以便将空字符串转换为数字零。