Bash para cada linha em um arquivo

Bash para cada linha em um arquivo
O loop "for" em Bash pode ser usado com diferentes variações para executar várias tarefas. Uma dessas variações é a “para cada linha no arquivo”, responsável por ler todas as linhas em um arquivo. Neste artigo, falaremos sobre os métodos de usar "para cada linha no arquivo" em Bash.

Nota: Os métodos mostrados abaixo foram demonstrados no Ubuntu 20.04. No entanto, eles também funcionarão bem com qualquer outra distribuição Linux.

Métodos de uso "Para cada linha no arquivo" em Bash:

Nesses métodos, mostraremos um exemplo no qual você pode ler cada linha de um arquivo e, em seguida, você pode exibi -lo no terminal ou até armazenar essas linhas em outro arquivo. Vamos dar uma olhada nos dois métodos.

Método 1: Para exibir as linhas de leitura no terminal:

Para exibir as linhas de um arquivo no terminal usando "para cada linha no arquivo", você precisará executar as seguintes etapas:

Etapa 1: Criando um arquivo de texto fictício:

Primeiro de tudo, você deve criar um arquivo de texto com alguns dados aleatórios para o bem da demonstração. Embora este arquivo de texto possa ser criado em qualquer lugar, no entanto, é altamente recomendável que você o crie na pasta doméstico. Para fazer isso, clique no ícone do gerenciador de arquivos destacado na imagem mostrada abaixo:

  • Agora clique com o botão direito do mouse em qualquer lugar da sua pasta doméstico e selecione a nova opção de documento no menu que aparece. Em seguida, selecione a opção de documento vazio. Depois que um documento vazio for criado em sua pasta doméstico, forneça o nome de sua escolha para ele seguido pelo .Extensão txt. Neste exemplo, nomeamos como foreachline.TXT.


  • Clique duas vezes neste arquivo de texto para abri -lo e depois digite qualquer texto aleatório nele, como mostrado na imagem a seguir. Depois de fazer isso, salve este arquivo e feche -o.

  • Etapa 2: Criando o script Bash:

    Agora crie um arquivo Bash da mesma maneira que você criou o arquivo de texto na pasta doméstico, exceto que desta vez, você deve fornecer o nome seguido pelo .Extensão SH em vez do .Extensão txt. Nomeamos nosso arquivo Bash como foreachline.sh, mas você pode dar qualquer nome de sua escolha.

    Abra este arquivo clicando duas vezes e digite o script mostrado na imagem abaixo no seu arquivo bash recém-criado. Aqui, a primeira linha está lá para indicar que o script a seguir é um script bash. Simplesmente criamos uma variável chamada "arquivo" e atribuímos o nome do nosso arquivo de texto como seu valor i.e. Foreachline.TXT. Em seguida, criamos uma variável chamada "linhas" e a equalizamos para "$ (CAT $ FILE)". Aqui, o comando CAT lê o conteúdo do nosso arquivo de texto e, quando for precedido por um símbolo "$", o conteúdo lido por este comando será armazenado na variável de linhas. Dessa forma, todas as linhas do arquivo chamadas foreachline.txt será armazenado na variável linhas. Em seguida, aplicamos o loop "for" que tem uma "linha" de iterador ". Este iterador funciona na variável "linhas" que criamos acima e vai atingir todas as linhas uma a uma. Então, no bloco "Do-Done", simplesmente exibimos todas essas linhas no terminal usando o comando ECHO.

    Etapa 3: executando o script Bash:

    Agora inicie o terminal no Ubuntu 20.04 e, em seguida, execute o seguinte comando nele para executar o script Bash criado acima:
    Bash foreachline.sh

    Quando este comando fará com que o script bash seja executado, você poderá ver todas as linhas do seu arquivo de texto no seu terminal, como mostrado na imagem a seguir:

    Método 2: Para salvar todas as linhas de leitura em outro arquivo:

    Neste método, modificamos ligeiramente o script bash criado no método acima para salvar todas as linhas de leitura em um novo arquivo de texto em vez de exibi -las no terminal. Para fazer isso, execute as etapas mencionadas abaixo:

    Etapa 1: Modificando o script Bash criado acima e executando -o:

    Abra o script Bash que você criou no método acima e modifique -o como mostrado na imagem a seguir. Simplesmente adicionamos o símbolo ">>" seguido de um novo nome de arquivo após o comando Echo no bloco "Do-Done". Esta modificação salvará todas as linhas de leitura em um novo arquivo de texto em vez de exibi -las no terminal. Agora execute o script Bash novamente através do terminal com o comando Bash seguido pelo nome do arquivo Bash. Desta vez, quando o script bash será executado, ele criará um novo arquivo de texto cujo nome neste caso é novo.TXT.

    Etapa 2: Acessando o arquivo de texto recém -criado:

    Para verificar se todas as linhas de “leitura” foram salvas no novo arquivo de texto, você pode simplesmente visualizar o conteúdo desse arquivo executando o seguinte comando em seu terminal:
    Cat Newfile.TXT

    A saída mostrada na imagem abaixo garantirá que todas as linhas de leitura foram copiadas para o novo arquivo de texto.

    Conclusão:

    Dessa forma, você pode usar "para cada linha no arquivo" para ler todas as linhas de um arquivo e depois manipulá -lo com essas linhas. Acabamos de falar sobre os dois cenários básicos deste artigo, no entanto, você pode até usar esse loop para problemas mais complexos.