docvt=./tmp/docvt

# |  1 H00 fventa 06 00   0 | 2 H01 fechai 16 00   6 | 3 H02 kilom1 06 01  22 |
# |  4 H03 vende  04 51  28 | 5 H04 fechat 16 01  32 | 6 H05 kilom2 06 01  48 |
# |  7 H06 valorg 10 01  54 | 8 H07 gastos 246 11  64 | 9 H08 faltan 10 01 310 |
# | 10 H09 fopago 15 16 320 |11 H10 almace 512 15 335 |12 H11 status 02 55 847 |

# 13 D00 client  10  52 | 14 D01 identi  40  00 | 15 D02 guiads  6   01 | 
# 16 D03 produc  6   53 | 17 D04 unidad  6   00 | 18 D05 precv1  8   01 | 
# 19 D06 tkilos  8   01 | 20 D07 vlrvta  10  01 | 21 D08 pagado  10  15 | 
# 22 D09 frpago  2   54 | 
awk -F"^" '
function trail(txt) { while (substr(txt,length(txt),1)==" ") txt=substr(txt,1,length(txt)-1); return (txt) }
{x=split(trail($11),a,"|") }
length(a[2])&& $1!=ant {
for (i=2;i<x;i+=5)
if(a[i]!="") {

        split($4,b,"|")
        split(b[2],c," ")

printf "%s^",a[i]
printf "%-20.20s^",a[i+1]
printf "%s^",$1
printf "%.2d^%10.10s^%s",i/5 +1,$2,c[1]
printf "%s^ABONO A CTACTE^PESOS^^^",a[i+2]
printf "%d^",a[i+3]
printf "%s^",a[i+4]
print ""
}

ant=$1
} ' $docvt

