Bash enquanto lida linha

Bash enquanto lida linha
Quando você está trabalhando em scripts bash, às vezes pode ser necessário ler uma linha de arquivo por linha. Vamos explicar com um exemplo. Você tem alguns dados em um arquivo de texto que deve ser executado ou processado usando um script. Então, executando um script bash para processar um arquivo de texto é muito diferente. Você precisa seguir uma sintaxe especificada para ler uma linha de arquivo por linha. Este artigo ajudará você a ler uma linha de um arquivo usando o loop while in Bash.

Sintaxe básica de enquanto lida linha

A sintaxe a seguir é usada para o Bash Shell para ler um arquivo usando o loop while:

enquanto lida -r linha;
fazer
echo "$ line";
feito < input.file

A opção '-r' na sintaxe mencionada acima passada para ler o comando que evita a barra de barragem de ser interpretada. A opção 'input_file' representou o nome do seu arquivo que você deseja acessar usando o comando 'Read'.

O separador de campo interno abreviou como Ifs pode ser usado antes que o comando de leitura seja definido como a string nula que impede que o espaço de branco que lidera ou à direita seja aparado.

enquanto ifs = leia -r line;
fazer
eco $ line;
feito < input.file

Abra o terminal usando 'Ctrl + alt + t' atalho e depois execute os seguintes comandos nele.

Exemplo # 1: Linha de leitura de arquivo por linha

Vamos dar um exemplo no qual suponha que tenhamos um arquivo chamado 'OS.TXT' contendo os nomes de todas as importantes distribuições Linux. Se você quiser ler um arquivo sem usar o 'gato' Comando então, para esse fim, você pode executar o seguinte comando para executar a tarefa específica. Usaremos o loop while que lerá cada linha do arquivo 'OS.TXT' e armazena o conteúdo em cada etapa em uma linha $ variável que você pode exibir posteriormente.

Cole os seguintes nomes de distribuições Linux no 'OS.TXT'

CENTOS
Ubuntu
Debian
Linuxmint
enquanto lida linha;
fazer
eco $ line;
feito < OS.txt


Do comando acima, você receberá a seguinte resposta na janela do terminal:

Exemplo # 2: Leitura de arquivo usando o script Bash

Crie um arquivo Bash e adicione o código abaixo mencionado neste arquivo para ler o conteúdo do arquivo. Você pode armazenar o arquivo de texto anterior em uma nova variável $ nome do arquivo e variável $ n é usado para manter o valor de cada linha. Agora, usando o loop do while, leremos cada linha de um arquivo com um número de linha específico.

#!/BIN/BASH
nome do arquivo = 'OS.TXT'
n = 1
enquanto lida linha;
fazer
# para ler cada linha
eco "Linha de distribuição do sistema operacional. $ n: $ line "
n = $ ((n+1))
feito < $filename

Salve o arquivo com um nome Osinfo.sh ' e digite o seguinte comando no terminal para executar o script de bash acima.

$ Bash Osinfo.sh

Agora, execute o comando CAT para visualizar o conteúdo original do arquivo.

$ CAT OS.TXT

Método alternativo para leitura de arquivos

Usando o nome do arquivo passante de um comando

Em um arquivo bash, você precisa adicionar o seguinte script de código. Neste script, temos que tomar um nome de arquivo como um argumento. Primeiro, o valor de um argumento é lido por um $ 1 variável que tem um nome de arquivo para leitura. Ele verificará se o nome do arquivo existe no local especificado e, em seguida, usando o loop que ele leu uma linha por linha semelhante ao exemplo anterior.

#!/BIN/BASH
nome do arquivo = $ 1
se [[ ! -f $ FILENAME]]; então
eco "Erro, você deve entrar em um nome de arquivo como um parâmetro de linha de comando"
saída
fi
enquanto lida linha; fazer
# lendo cada linha
eco $ linha
feito < $filename

Salve o script acima com nomeado 'Leia a linha.sh ' e execute o seguinte comando no terminal para executar o script mencionado acima:

$ bash readline.sh OS.TXT

Você pode ver que o parâmetro foi usado como $ nome do arquivo, e leia linha por linha com o enquanto lida a linha Sintaxe do parâmetro fornecido na linha de comando.

Conclusão

Neste artigo, discutimos como ler as linhas usando o loop while na programação de bash. Implementamos métodos diferentes usando o script Bash ou você pode simplesmente usar um arquivo de texto para executar a leitura de uma linha de arquivo por linha. Se você estiver interessado em aprender mais exemplos, usando a sintaxe mencionada acima, você também pode executar em seu sistema. Espero que você tenha gostado deste tutorial e seja único para você. Vamos saber em caso de qualquer erro.