fork download
  1. #!/bin/bash
  2.  
  3. awk -F , 'BEGIN { OFS=FS
  4. pos = "{ABCDEFGHI"; neg = "}JKLMNOPQR";
  5. for (i=0; i<10; ++i) { p[substr(pos, i+1, 1)] = i; n[substr(neg, i+1, 1)] = i }
  6. }
  7. { for (i=4; i<=5; i++) {
  8. where = length($i)
  9. what = substr($i, where, 1)
  10. if (what ~ "^[" pos "]$") sign = ""
  11. else if (what ~ "^[" neg "]$") sign = "-"
  12. else print "Error: field " i " " $i " malformed" >"/dev/stderr"
  13. $i = sign substr($i, 1, where-1) (sign ? n[what] : p[what])
  14. }
  15. }1'
Success #stdin #stdout 0s 4400KB
stdin
200928,121546,00002,0000004015K,0000000641},00102020
200928,121546,00002,0000000227B,0000000970R,84839923
200928,121546,00003,0000001197A,0000000227B,93877763
stdout
200928,121546,00002,-00000040152,-00000006410,00102020
200928,121546,00002,00000002272,-00000009709,84839923
200928,121546,00003,00000011971,00000002272,93877763