Comment extraire un contenu de fichier dans un tableau dans Bash ligne par ligne. Chaque ligne est définie sur un élément.
J'ai essayé ça:
declare -a array=(`cat "file name"`)
mais cela n'a pas fonctionné, il extrait toutes les lignes en [0]
élément d'index
Vous pouvez utiliser une boucle pour lire chaque ligne de votre fichier et la placer dans le tableau
# Read the file in parameter and fill the array named "array"
getArray() {
array=() # Create array
while IFS= read -r line # Read a line
do
array+=("$line") # Append line to the array
done < "$1"
}
getArray "file.txt"
Comment utiliser votre tableau:
# Print the file (print each element of the array)
getArray "file.txt"
for e in "${array[@]}"
do
echo "$e"
done
Pour la version bash 4, vous pouvez utiliser:
readarray -t array < file.txt
Cela pourrait fonctionner pour vous (Bash):
OIFS="$IFS"; IFS=$'\n'; array=($(<file)); IFS="$OIFS"
Copie $IFS
, ensemble $IFS
vers la nouvelle ligne, Slurp fichier dans le tableau et réinitialiser $IFS
de retour.