Tanto la lectura como la escritura en archivos en BASH se pueden realizar con los redirectores de entrada y salida. Nos hemos encontrado con cada uno en guiones anteriores.
#!/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
En lugar de hacer eco en la terminal, nuestra rama condicional ahora se hace eco en un archivo llamado LineFile.txt.
La lectura de archivos se ha presentado de dos formas, cat y read .readpor lo general, siempre se considera una mejor práctica. Mientrascatsimplemente pasa los flujos de texto de un archivo. leer implica que el script lee un archivo real y asume la responsabilidad de leer un archivo.
La siguiente secuencia de comandos vuelve a leer el archivo de texto, coloca cada línea en una matriz y luego imprime la matriz en la 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
A continuación se muestra la salida.
0 -> line001
1 -> line002
2 -> line003
3 -> line004
4 -> line005
5 -> line006
6 -> line007
7 -> line008
8 -> line009
9 -> line010