DEV Community

Marina Carvalho
Marina Carvalho

Posted on

Dicionário shell

Problema: Eu tenho uma entrada de duas listas de números assim:
[3,2,6,4,1,7,5],[3,4,1,2,5]
quero fazer o mapeamento deles para strings

Eu aprendi:

declare -A dev
dev[5]=marina
Enter fullscreen mode Exit fullscreen mode

também vi que:

c=[3,2,6,4,1,7,5],[3,4,1,2,5]
p=${c%],*}
echo $p
->[3,2,6,4,1,7,5
p=${p#[}
echo $p
->3,2,6,4,1,7,5
Enter fullscreen mode Exit fullscreen mode

Próximo passo é iterar esses números!

Top comments (1)

Collapse
 
brenoaraujolima profile image
Breno Araújo • Edited

Oi, Marina !

Nesse seu exemplo, as vírgulas ainda constam no resultado final. Como queremos iterar apenas em números, achei interessante removê-las antes dessa iteração ter início.

Essas vírgulas podem ser removidas por meio da seguinte expansão "${p//,}"

Exemplo completo com a união dos dois comandos pode ser visto abaixo:

    resultBruto=[3,2,6,4,1,7,5],[3,4,1,2,5]
    echo $resultBruto

    p=${resultBruto%],*} 
    p=${p#[}
    echo $p

    p="${p//,}"
    echo $p
Enter fullscreen mode Exit fullscreen mode