是否可以每三个数字用逗号分隔一个数字,并仅在Unix命令中进行四舍五入?

是否可以每三个数字用逗号分隔一个数字,并仅在Unix命令中进行四舍五入?,unix,csv,sed,command,Unix,Csv,Sed,Command,在以下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文件

在以下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
使其可行,但在搜索时没有得到任何答案。。。所以请帮我得到我想要的

谢谢

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。(数字和值标题上的奇数对齐是因为数据文件中逗号后有空格。)

您尝试了什么?在搜索时,您应该更加努力:将字符串右键填充到80个字符()
sed-e:a-e的/^。\{1,80\}$/&;ta'
将逗号分隔的文件转换为制表符分隔的()
tr'\t'',“逗号分隔的文件
插入千位分隔符()
sed-r”:L;s=\b([0-9]+)([0-9]{3})\b=\1,2=g;谢谢。我得到了成功的结果。你是说
\''
是awk中的单引号转义序列,而不是大多数编程语言中采用的
\'
?事实上,不是。
awk
脚本在(shell)单引号内。序列
\''
停止当前单引号字符串(第一个
'
),插入一个转义单引号(
\'
),并启动一个新的(继续)单引号字符串(最后一个
'
)。这是在单引号字符串中嵌入单引号的shell技巧。