Bash - preenche uma matriz 2D do arquivo

Eu sei que é provavelmente algo fácil, mas estou lutando muito duro com isso.

Descrição do problema: Eu tenho um arquivo de texto com coordenadas no formato:
1 2
3 7 ...
onde primeira coluna == 'x' e segunda coluna == 'y' coordenadas.
Agora, eu quero preencher uma matriz 2D do tamanho N x M usando essas coordenadas do arquivo, imprimindo 'X' para os pontos especificados no arquivo e '.' de outra forma.

Exemplo: matriz [1] [2] = 'X', matriz [3] [7] = 'X', matriz [0] [1] = '.'

Até agora eu tentei:

separando colunas x, y e armazenando-as em matrizes como esta:

xcoords="xcoords.txt"
ycoords="ycoords.txt"

head $geneFile | grep " " | awk -F' ' '{print $1}' > $xcoords
head $geneFile | grep " " | awk -F' ' '{print $2}' > $ycoords

readarray -t xarr < $xcoords
readarray -t yarr < $ycoords

Mas não pode realmente sair daqui (acabou com 3,4 aninhados para loops).

Ou apenas armazenando um arquivo em uma matriz 2D. Mas como o bash não suporta matrizes 2D (eu sei que existem algumas maneiras de simulá-lo, mas não sei como usá-lo nesse caso)

readarray -t array < $geneFile # 

Loops como esse seriam ótimos - é claro que, em vez de valores fixos, eu gostaria de obter algo como "$ {xarr [i]}".

    for (( i = 0; i < nRows; i++ )); do
        for (( j = 0; j < nColumns; j++ )); do
            if [[ $i == 5 ]] && [[ $j == 5 ]]; then # of course instead of fixed value here I'd like to get coordinates values.
                printf "O"
            else
                printf "."
            fi
        done
        printf "\n"
    done 

Algum conselho / exemplo de como conseguir isso? Desde já, obrigado!

questionAnswers(1)

yourAnswerToTheQuestion