2016-03-21 30 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'