Linux Admin - Ler e Gravar em Arquivos

Tanto a leitura quanto a gravação em arquivos no BASH podem ser feitas com os redirecionadores de entrada e saída. Encontramos cada um em scripts 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

Em vez de ecoar para o terminal, nossa ramificação condicional agora ecoa para um arquivo chamado LineFile.txt.

A leitura de arquivos foi apresentada de duas maneiras, cat e read .readgeralmente é sempre considerada uma prática recomendada. Enquantocatapenas passa os fluxos de texto de um arquivo. read implica que o script leia um arquivo real e assume a responsabilidade pela leitura do arquivo.

O script a seguir lê o arquivo de texto novamente, coloca cada linha em um array e, em seguida, imprime o array no 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 seguir está a saída.

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