← retour aux snippets

bash mapfile: lire un fichier rapidement

Charger des lignes dans un tableau sans boucle while, gérer NUL et séparateurs propres.

objectif

Lire un fichier entier ou un flux en mémoire efficacement et proprement.

code minimal

mapfile -t lines < fichier.txt
echo "premiere: ${lines[0]}"

utilisation

# lire via NUL (fichiers avec nouvelles lignes dans les noms)
printf 'a\0b\0' | mapfile -d '' -t items
printf '%s\n' "${items[@]}"

variante(s) utile(s)

# supprimer le trailing newline (-t), définir un max (-n)
mapfile -t -n 100 head < fichier.txt

notes

  • alias: readarray.
  • évite les sous-shells et est plus rapide qu’une boucle read.