Expansión de parámetros de shell en matrices
Digamos que leí algunos datos en una matriz Bash:
$ IFS=" " read -a arr <<< "hello/how are/you iam/fine/yeah"
Ahora quiero imprimir el primero/
campo dividido para cada elemento en la matriz.
Lo que hago es recorrer los elementos y usar la expansión de parámetros de shell para quitar todo desde el primer/
:
$ for w in "${arr[@]}"; do echo "${w%%/*}"; done
hello
are
iam
Sin embargo, desdeprintf
nos permite imprimir todo el contenido de la matriz en una sola expresión:
$ printf "%s\n" "${arr[@]}"
hello/how
are/you
iam/fine
... Me pregunto si hay una manera de usar la expansión de parámetros de shell${w%%/*}
a la hora de usarprintf
, en lugar de recorrer todos los elementos y hacerlo contra cada uno.