How to read a two files, line by line in UNIX script and how to assign shell variable to awk ..?

Input are file and file1

file contains

store.bal
product.bal
category.bal
admin.bal

file1 contains

flip.store.bal ::FFFF:BADC:CD28,::FFFF:558E:11C5,6,8,2,1,::FFFF:81C8:CA8B,::FFFF:BADC:CD28,1,0,0,0,::FFFF:81C8:11C5,2,1,0,0,::FFFF:81DC:3111,1,0,1,0
store.bal. ::FFFF:F9CC:C5B9,::FFFF:356F:73C3,4,8,7,6,::FFFF:93CC:C9CF,::FFFF:F9CC:C5B9,1,0,0,0,::FFFF:93CC:73C3,2,1,0,0,::FFFF:93CC:3371,1,0,1,0
es.product.bal. ::FFFF:F9CC:C5B9,::FFFF:356F:73C3,4,8,7,6,::FFFF:93CC:C9CF,::FFFF:F9CC:C5B9,1,0,0,0,::FFFF:93CC:73C3,2,1,0,0,::FFFF:93CC:3371,1,0,1,0
many.category.bal. ::FFFF:F9CC:C5B9,::FFFF:356F:73C3,4,8,7,6,::FFFF:93CC:C9CF,::FFFF:F9CC:C5B9,1,0,0,0,::FFFF:93CC:73C3,2,1,0,0,::FFFF:93CC:3371,1,0,1,0
comp.admin.bal. ::FFFF:732B:649F,::FFFF:23EB:6EB2,2,3,8,7,::FFFF:FE66:6367,::FFFF:732B:649F,1,0,0,0,::FFFF:FE66:6EB2,2,1,0,0,::FFFF:FE2B:FE61,1,0,1,0
admin.bal. ::FFFF:FB85:A1BE,::FFFF:BC64:B35B,9,1,5,9,::FFFF:E3A2:AB2F,::FFFF:FB85:A1BE,1,0,0,0,::FFFF:E3A2:B35B,2,1,0,0,::FFFF:E385:13B1,1,0,1,0

output

store.bal|8|54
product.bal|4|31
category.bal|4|31
admin.bal|8|56

in above code insted of each field replace with file ... presently code is reading only one filed for ex: store.bal

cat file1|awk '{split($1,dp,"."); lend=length(dp); if(lend>2) { dom=dp[lend-2]"."dp[lend-1]; 
split($2,ipl,","); for(i=1; i<=length(ipl); i++) 
{ if(ipl~/:/) { 
if(ipl[i+1]~/:/) i++; rip=ipl; i++; raq=ipl; rtq=0; si=i+4; 
for(;i<si;i++) rtq+=ipl; rsub=""; r32ip=""; 
if(rip ~ /^::FFFF:/) { r32ip=rip; rsub=substr(rip,8,7);
 } 
print tolower(dom)"|"rip"|"r32ip"|"rsub"|"raq"|"rtq; i--}} }
 }' |awk -F "|" '{if($1=="store.bal" && $4 != "") { cnt[$4]=1; cnt2[$3]++; qc+=$6; }}
................

if($1=="store.bal" && $4 != "") { cnt[$4]=1; cnt2[$3]++; qc+=$6; }} in this line, instead of store.bal ,need to call file having all 4 data i.e store.bal,procut.bal,caterogy.bal and admin.bal

You can accomplish this using join command.

<Syntax>: join file.txt file1.txt

But first you need to have both the files sorted and also the first field in both the files should be exactly identical

Also please state clearly your second part of your question "how to assign shell variable to awk ..?"

Cheers!!

hi NickKnight,
awk -F "|" '{if($1=="store.bal" && $4 != "") { cnt[$4]=1; cnt2[$3]++; qc+=$6; }}
in stead of store.bal . it should take file .
i.e
file="file.txt"
cat $file|awk -v FILE=$file '{ print $FILE}'
awk -F "|" '{if($1=="FILE" && $4 != "") { cnt[$4]=1; cnt2[$3]++; qc+=$6; }}
END{ print $file1[1]"|"length(cnt)"|"qc; }`