Q:

How to use variable in awk substr

n=4;
echo "abcd" awk '{print substr($0,$n,1);}'
I want to get the substring by the usage of variable but I am not getting please help

A:

$ n=4; echo "abcd" | awk -v n="$n" '{print substr($0,n,1);}'
d

Possibly, it is clearer to have two different variable names:
$ n=4; echo "abcd" | awk -v m="$n" '{print substr($0,m,1);}'
d

Here, n is a shell variable and m is an awk variable.   The -v option is used to assign the awk variable m to have the value of the shell variable n.

