Admin Linux - Lire et écrire dans des fichiers

La lecture et l'écriture dans des fichiers dans BASH peuvent être effectuées avec les redirecteurs d'entrée et de sortie. Nous avons rencontré chacun dans les scripts précédents.

#!/bin/bash 
myFile = "myLines.txt"

while read -a FILENAME; 
   do
   
   if [ `echo $FILENAME | grep 004` ]; 
      then 
      echo "line was $FILENAME" >> LineFile.txt 
      break 
   fi
   
echo $FILENAME 
done < $myFile

Au lieu de faire écho au terminal, notre branche conditionnelle fait maintenant écho à un fichier nommé LineFile.txt.

La lecture à partir de fichiers a été présentée de deux manières, cat et read .readest généralement toujours considérée comme une meilleure pratique. Tandis quecattransmet simplement les flux de texte d'un fichier. read implique que le script lise un fichier réel et prend la responsabilité d'un fichier en cours de lecture.

Le script suivant lit à nouveau le fichier texte, place chaque ligne dans un tableau, puis imprime le tableau sur le terminal.

#!/bin/bash 
myFile = "myLines.txt"
line = ()

while read -r FILELINE; 
   do 
   line+=($FILELINE) 
done < $myFile

for i in `seq 0 ${#line[@]}`; 
   do 
   echo $i " -> " ${line[$i]} 
done

Voici la sortie.

0  ->  line001 
1  ->  line002 
2  ->  line003 
3  ->  line004 
4  ->  line005 
5  ->  line006 
6  ->  line007 
7  ->  line008 
8  ->  line009
9  ->  line010