Expansão de parâmetros do shell em matrizes
Digamos que eu li alguns dados em uma matriz Bash:
$ IFS=" " read -a arr <<< "hello/how are/you iam/fine/yeah"
Agora, quero imprimir o primeiro/
-sliced field para cada elemento na matriz.
O que faço é fazer um loop sobre os elementos e usar a expansão de parâmetros do shell para remover tudo, desde o primeiro/
:
$ for w in "${arr[@]}"; do echo "${w%%/*}"; done
hello
are
iam
No entanto, desdeprintf
nos permite imprimir todo o conteúdo da matriz em uma única expressão:
$ printf "%s\n" "${arr[@]}"
hello/how
are/you
iam/fine
... Gostaria de saber se existe uma maneira de usar a expansão do parâmetro shell${w%%/*}
no momento de usarprintf
, em vez de repetir todos os elementos e fazê-lo contra todos.