2017-04-26 27 views
0

我拥有的文件以毫米为单位,只能由另一个以米为单位的程序读取。我需要将它们转换成米(除以1000)。原始文件格式看起来是这样的(数百行):将csv中的所有数字除以相同的数字

1.11,2.22,3.33 
2.22,3.33,4.44 

我已经用awk尝试和使用:

awk '{print ($1/1000)","($2/1000)","($3/1000)}' input > output 

这整除的数,但是从3列改变他们进入一个混乱混乱:

0.00111,0.00222,.003330.00222,0.00333,0.00444 

如何分割数字,但保持3列格式?

+1

如果您的原始文件已经通过MS-Windows系统传递,也许'dos2unix文件'将预先清除数据。如果这样做,你想知道更多,在这里搜索'[linux] dos2unix',将有100多个Q/As解释不同的深度和风格。祝你好运。 – shellter

+0

我使用'dos2unix',我仍然在制作凌乱的.csv。我也尝试使用下面的@RomanPerekhrest方式。 – walkergt

回答

2

使用以下AWK方法:

awk -F, '{for(i=1;i<=NF;i++) $i=$i/1000}1' OFS=',' input 

输出(您当前的示范性输入):

0.00111,0.00222,0.00333 
0.00222,0.00333,0.00444 

-F, - 场分离

for(i=1;i<=NF;i++) - 遍历行的所有字段

+0

我也试过这个,它没有解决问题。我在另一个论坛上看到类似的东西。当我不将它导出到新文件时,它看起来是正确的。但一旦输出它就会变得混乱不堪 – walkergt

+0

尝试在某些编辑器(vim,nano)中打开输出文件,以查看行之间是否存在某些“特殊”分隔符 – RomanPerekhrest

+0

有。我意识到这一点,并回来评论说。谢谢 – walkergt

相关问题