2016-03-21 31 views
1

我不希望使用UNIX命令將文本文件中的所有整數更改爲浮點數。 例如,「X.Yang,is,a,student,in,USYD,from,2016」到「X.Yang,is,a,student,in,USYD,from,2016.00」我知道sed無法工作重疊替代。我認爲使用awk可能是個好主意,但我不知道如何。 有人能給我一些幫助嗎?如何使用UNIX命令將整數更改爲浮點數

回答

0

您可以使用awk這樣的:

awk 'BEGIN{FS=OFS=","} { 
    for (i=1; i<=NF; i++) if ($i+0 == $i) $i=sprintf("%.2f", $i)} 1' file 

X.Yang,is,a,student,in,USYD,from,2016.00 

$i+0 == $i條件檢查,如果該列是一個有效的數字。

+0

是3.14159265浮點數或用點分隔的兩個整數? 0x123是一個整數嗎? 123x是一個整數嗎?澄清需要! –

0

試試這個例子:它只適用於你的情況。爲什麼不 ?

sed -r 's/([0-9]+)/\1.0/g'