如何将文件中的整数更改为十进制值

时间:2018-09-28 06:48:34

标签: awk

我需要编辑一个用“ |”分隔的文件中的金额,我需要将字段1和4的整数都更改为十进制,请问有人可以帮助我

输入

1|A|b|1|5468|k|l|78789
3434|c|d|3434|045958|l|h|784889
12000|e|f|12000|6767474|klk|kjjhf|890898
200000|g|h|200000|5676474|jfjjf|teyt|67878

输出

1.00|A|b|1.00|5468|k|l|78789
34.34|c|d|34.34|045958|l|h|784889
120.00|e|f|120.00|6767474|klk|kjjhf|890898
2000.00|g|h|2000.00|5676474|jfjjf|teyt|67878

1 个答案:

答案 0 :(得分:1)

请您尝试以下。

awk -F"|" '
{
  if(/0+$/){
     for(i=1;i<=NF;i++){
       $i=substr($i,1,length($i)-1)"."substr($i,length($i)-1)
     }
  }
  else{
     for(i=1;i<=NF;i++){
       $i=sprintf("%.02f",$i)
     }
  }
}
1
' OFS="|"  Input_file

输出如下。

1.00|1.00
3434.00|3434.00
1200.00|1200.00
20000.00|20000.00