J'essaie de convertir la sortie d'une commande comme echo -e "ab \ n \ nd e" code> à un tableau.
for i in ${X[@]} ; do echo $i ; done
a b
c
d e
3 Réponses :
Vous devez modifier votre séparateur de champ interne em> variable ( ifsc code>) à une nouvelle ligne d'abord.
Merci pour les explications. Je me demande pourquoi vous utilisez echo -e code> et pas seulement
echo code>. N'importe quelle raison?
Le drapeau -E code> indique à Echo d'interpréter des caractères d'évacuation des goudrons tels que
\ n code> pour sortir une nouvelle ligne vs un littéral
\ n code>
Définir le ifs code> sur
nouvelle ligne code>. Par défaut, il est
espace code>.
[jaypal:~] while IFS=$'\n' read -a arry; do
echo ${arry[0]};
done < <(echo -e "a b\nc\nd e")
a b
c
d e
Non, par défaut, il est $ '\ t \ n' code>, des espaces onglets et de nouvelles lignes neuves.
readarray -t "[array]" <<< "$([command])"
Dupliqué possible de Comment créer un Array in Bash à partir d'une variable de commande?
Quelqu'un pourrait être capable de trouver un meilleur duplicata; C'est juste le plus récent. Cette question a probablement été posée des dizaines de fois.