Copy last third char form string

HI

Input A.txt

ABC907 ABC907_1B_9
ABC985 ABC985_1A_9
ABC985 ABC985_1B_9
ABC985 ABC985_1C_9
ABC05037 ABC05037_1A_9
ABC05037 ABC05037_1B_9

Base of column 2 last third char.

If It is A the 1,if B then 2 If C then 3

File B.txt

ABC907 ABC907_1B_9 2
ABC985 ABC985_1A_9 1 
ABC985 ABC985_1B_9 2
ABC985 ABC985_1C_9 3
ABC05037 ABC5037_1A_9 1
ABC05037 ABC5037_1B_9 2

Thanks

$ perl -pne 'BEGIN{%h1=map{$_ => ++$i}'A'..'Z';} s/(.)..$/$& $h1{$1}/;' file
ABC907 ABC907_1B_9 2
ABC985 ABC985_1A_9 1
ABC985 ABC985_1B_9 2
ABC985 ABC985_1C_9 3
ABC05037 ABC05037_1A_9 1
ABC05037 ABC05037_1B_9 2

Guru.

Thanks Men

Do have anything with awk ???

Using awk:

$ awk 'BEGIN{for(i=65;i<=90;i++){x=sprintf("%c",i);a[x]=++j;}}{$3=a[substr($0,length-2,1)];}1' file
ABC907 ABC907_1B_9 2
ABC985 ABC985_1A_9 1
ABC985 ABC985_1B_9 2
ABC985 ABC985_1C_9 3
ABC05037 ABC05037_1A_9 1
ABC05037 ABC05037_1B_9 2

Guru

also try:

awk -F"[ _]" -v w=ABCDEFG '{c=index(w,substr($3,2,1)); print $0,c}' infile

Thanks Guys

Change in INput:

HI

Input A.txt

ABC907 ABC907_1B_9 0
ABC985 ABC985_1A_9 0
ABC985 ABC985_1B_9 0
ABC985 ABC985_1C_9 0
ABC05037 ABC05037_1A_9 0
ABC05037 ABC05037_1B_9 0

Base of column 2 last third char.

If It is A the 1,if B then 2 If C then 3

File B.txt

ABC907 ABC907_1B_9 0 2
ABC985 ABC985_1A_9 0 1 
ABC985 ABC985_1B_9 0 2
ABC985 ABC985_1C_9 0 3
ABC05037 ABC5037_1A_9 0 1
ABC05037 ABC5037_1B_9 0 2

Need Output at Column 4

Thanks

again, try:

awk -F"[ _]" -v w=ABCDEFG '{c=index(w,substr($3,2,1)); print $0,c}' A.txt
awk -F"[ _]" -v w=ABCDEFG '{c=index(w,substr($3,2,1)); print $0,0,c}' infile

Grate Buddy !!!!! Thanks