Как изменить целое число в файле на десятичное значение - PullRequest
0 голосов
/ 28 сентября 2018

Мне нужно отредактировать сумму в файле, который разделен символом «|», мне нужно изменить целое число на десятичное для одних только полей 1 и 4, может кто-нибудь помочь мне здесь

INput

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 голосов
/ 28 сентября 2018

Не могли бы вы попробовать следующее.

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...