-2

在以下 CSV 文件中:

name, number, value
Mike, 1000, 21.555522
Justin, 1001, 32.113
Josh, 1002, 998.2101

将其转换为以下文件是否可行?

name    number    value
Mike    1,000    21.6
Justin    1,001    32.1
Josh    1,002    998.2

请注意,第二个文件现在是制表符分隔文件,因为第二列现在用逗号分隔,因此不能再用作 CSV 文件。另外,我想将第三列的值四舍五入到小数点后一位。而且我只想在 Unix 命令中处理这些任务,因为我不想为这样一个微不足道的问题编写 Python 代码......我假设cut或者sed使它可行,但是当我是搜索...所以请帮我得到我想要的。

谢谢。

4

1 回答 1

1
awk -F, 'NR==1 { printf "%s\t%s\t%s\n", $1, $2, $3 }
         NR!=1 { printf "%s\t%'\''d\t%.1f\n", $1, $2, $3 }'

该序列'\''将单引号嵌入到格式字符串中。 %'d将逗号放入输出。

name     number  value
Mike    1,000   21.6
Justin  1,001   32.1
Josh    1,002   998.2

在 Mac OS X 10.8.4 上测试;YMMV。(数字和值标题的奇数对齐是因为数据文件中逗号后面的空格。)

于 2013-07-19T06:12:04.717 回答