substr() の問題・・・じゃねぇよ

substr() の問題というわけでもなく、出題者がどうやって自己解決したかもかかれてないので、何とも言えない問題です。

Question

BEGIN { print "Ol a'!" }

/ActFrom\[1\]/{
             S1L = $0;#
             sub(/ActFrom\[1\]="/,"",S1L);
                 sub(/";/,"",S1L);
              p=S1L+0;
              }
/Boards\[1\]=/{m1=$0;
      sub(/Boards\[1\]="/,"",m1);
      P1=substr(m1,p,1);
                   }
END{print p;
        print m1;
        print P1;

}

というファイルを使って、

Boards[0]="xxxxxxxxxqxxxpkppxxxxxpxPxxxQRxxxrxxxxxxxxxxxPxxxxxxxxPPxxxxxxKxb";
Boards[1]="xxxxxxxxxqxxxpxppxxxxxpkPxxxQRxxxrxxxxxxxxxxxPxxxxxxxxPPxxxxxxKxw";
Boards[2]="xxxxxxxxxqxxxpxppxxxxxpkPxxxQxxRxrxxxxxxxxxxxPxxxxxxxxPPxxxxxxKxb";
Boards[3]="xxxxxxxxxqxxxpxppxxxxxxkPxxxQxxpxrxxxxxxxxxxxPxxxxxxxxPPxxxxxxKxw";
Boards[4]="xxxxxxxxxqxxxpxppxxxxQxkPxxxxxxpxrxxxxxxxxxxxPxxxxxxxxPPxxxxxxKxb";
ActFrom[0]="14";
ActTo[0]="23";

というファイルを処理した時に n 番目の位置の文字を取り出したいようなのです。

Answer

自己解決してしまっていて、回答がないのですが、

$ echo 'Q xxxxxxxxxqxxxpkppxxxxxpxPxxxQRxxxrxxxxxxxxxxxPxxxxxxxxPPxxxxxxKxb' | gawk '{print index($2, "Q")}'
29

でいいんではないでしょうか?