Eu tenho um arquivo que contém a única linha abaixo:
{machineA=[0, 1024, 4, 1028], machineB=[1, 1025, 5, 1029]}
em que tenho dois conjuntos de dados:
machineA=[0, 1024, 4, 1028]
machineB=[1, 1025, 5, 1029]
Agora, preciso ler o arquivo acima e dividi-lo de forma que possa extrair as informações de cada máquina conforme mencionado acima e armazená-las em alguma estrutura de dados.
Atualmente, estou confuso sobre qual estrutura de dados devo usar em um script de shell bash. Se eu estivesse fazendo isso em Java, usaria, Map<String, Set<String>>
mas não tenho certeza do que devo usar em um shell script.
E depois de armazená-lo em alguma estrutura de dados, preciso iterá-lo e imprimir o resultado.
Consigo ler o arquivo acima usando o script de shell abaixo:
#!/bin/bash
while read -r line; do
echo "$line"
done < data.txt
Mas não sei como dividir os dados da linha acima de maneira a poder extrair as informações de cada máquina e armazená-las em alguma estrutura de dados?
ATUALIZAR:-
Abaixo está o meu script de shell que recebi depois de seguir a sugestão dada por glenn -
#!/bin/bash
while read -r line; do
echo "$line"
declare -A "$(
echo "x=("
grep -oP '(\w+)(?==)|(?<==\[).*?(?=\])' <<< "$line" |
tr -d , |
paste - - |
sed 's/^/[/; s/\t/]="/; s/$/"/'
echo ")"
)"
for key in "${!x[@]}"; do # need quotes here
for element in ${x[$key]}; do # no quotes here
printf "%s\t%s\n" "$key" "$element"
done
done
done < primary.txt