#!/bin/bash
awk -F , 'BEGIN { OFS=FS
pos = "{ABCDEFGHI"; neg = "}JKLMNOPQR";
for (i=0; i<10; ++i) { p[substr(pos, i+1, 1)] = i; n[substr(neg, i+1, 1)] = i }
}
{ for (i=4; i<=5; i++) {
where = length($i)
what = substr($i, where, 1)
if (what ~ "^[" pos "]$") sign = ""
else if (what ~ "^[" neg "]$") sign = "-"
else print "Error: field " i " " $i " malformed" >"/dev/stderr"
$i = sign substr($i, 1, where-1) (sign ? n[what] : p[what])
}
}1'
IyEvYmluL2Jhc2gKCmF3ayAtRiAsICdCRUdJTiB7IE9GUz1GUwogICAgcG9zID0gIntBQkNERUZHSEkiOyBuZWcgPSAifUpLTE1OT1BRUiI7CiAgICBmb3IgKGk9MDsgaTwxMDsgKytpKSB7IHBbc3Vic3RyKHBvcywgaSsxLCAxKV0gPSBpOyBuW3N1YnN0cihuZWcsIGkrMSwgMSldID0gaSB9Cn0KeyBmb3IgKGk9NDsgaTw9NTsgaSsrKSB7CiAgICB3aGVyZSA9IGxlbmd0aCgkaSkKICAgIHdoYXQgPSBzdWJzdHIoJGksIHdoZXJlLCAxKQogICAgaWYgKHdoYXQgfiAiXlsiIHBvcyAiXSQiKSBzaWduID0gIiIKICAgIGVsc2UgaWYgKHdoYXQgfiAiXlsiIG5lZyAiXSQiKSBzaWduID0gIi0iCiAgICBlbHNlIHByaW50ICJFcnJvcjogZmllbGQgIiBpICIgIiAkaSAiIG1hbGZvcm1lZCIgPiIvZGV2L3N0ZGVyciIKICAgICRpID0gc2lnbiBzdWJzdHIoJGksIDEsIHdoZXJlLTEpIChzaWduID8gblt3aGF0XSA6IHBbd2hhdF0pCiAgICB9Cn0xJw==
MjAwOTI4LDEyMTU0NiwwMDAwMiwwMDAwMDA0MDE1SywwMDAwMDAwNjQxfSwwMDEwMjAyMAoyMDA5MjgsMTIxNTQ2LDAwMDAyLDAwMDAwMDAyMjdCLDAwMDAwMDA5NzBSLDg0ODM5OTIzCjIwMDkyOCwxMjE1NDYsMDAwMDMsMDAwMDAwMTE5N0EsMDAwMDAwMDIyN0IsOTM4Nzc3NjM=
200928,121546,00002,0000004015K,0000000641},00102020
200928,121546,00002,0000000227B,0000000970R,84839923
200928,121546,00003,0000001197A,0000000227B,93877763
200928,121546,00002,-00000040152,-00000006410,00102020
200928,121546,00002,00000002272,-00000009709,84839923
200928,121546,00003,00000011971,00000002272,93877763