J'ai un tableau de chemins vers des fichiers qui ont chacun plusieurs lignes de texte. Je voudrais produire un tableau rempli avec la première ligne de chaque fichier traité comme suit:
# this.txt first line is [Test this]
# another.txt first line is [Test another]
paths=(
./this/path/this.txt
./another/path/another.txt
)
for i in ${paths[@]}; do
read -r line < $i
lines+=$line
done
Tout au plus, je n'ai obtenu qu'une seule valeur dans mon tableau. Je n'arrive pas à sortir le tableau que je recherche de la boucle for. J'ai essayé de nombreuses variantes et j'ai du mal à comprendre où je me trompe.
bash
shell-script
array
dimmech
la source
la source
Dans Bash, vous pouvez également lire directement des lignes dans un tableau. Si vous sélectionnez la longueur actuelle du tableau
${#lines[@]}
comme index d'insertion, vous pouvez y ajouter:Extrait du synopsis
la source