我需要编辑一个用“ |”分隔的文件中的金额,我需要将字段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
答案 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