Shell-Parametererweiterung für Arrays

Say Ich habe einige Daten in ein Bash-Array eingelesen:

$ IFS=" " read -a arr <<< "hello/how are/you iam/fine/yeah"

Nun, ich möchte das erste @ druck/ -geschnittenes Feld für jedes Element im Array.

Was ich tue, ist eine Schleife über die Elemente und die Verwendung der Shell-Parameter-Erweiterung, um alles vom ersten @ zu entferne/:

$ for w in "${arr[@]}"; do echo "${w%%/*}"; done
hello
are
iam

Jedoch, seitprintfit @ können wir den gesamten Inhalt des Arrays in einem einzigen Ausdruck drucken:

$ printf "%s\n" "${arr[@]}"
hello/how
are/you
iam/fine

... Ich frage mich, ob es eine Möglichkeit gibt, die Shell-Parameter-Erweiterung zu verwenden.${w%%/*} zum Zeitpunkt der Verwendung vonprintf, anstatt alle Elemente zu durchlaufen und es gegen jedes einzelne zu tun.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage