$ cat gai.awk BEGIN{ a["1a1"]=5;a["1a2"]=2;a["2a1"]=3;a["2a2"]=6; b[1]=5;b[2]=5; y[1]=1;y[2]=1; for(k=1;k<=35;k++){ for(i in a){ split(i,out,"a"); if(out[1] !=out[2]){ l[out[1]]=l[out[1]]+a[i]*y[out[2] }else{ l2[out[1]]=a[i]; } } for(i in y){ x[i]=(b[i]-l[i])/l2[i]; y[i]=x[i] } for(i in l){ print l[i] delete l[i] } } print 5*y[1]+2*y[2]; print 3*y[1]+6*y[2]; }