2017-04-26 28 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

相關問題