Existem vários usos do comando 'awk' no Linux. Por exemplo, ele pode ser usado para imprimir o conteúdo de um arquivo de texto. A primeira linha de muitos arquivos de texto contém o título do arquivo e, às vezes, a primeira linha deve ser ignorada ao imprimir o conteúdo do arquivo. Neste tutorial, mostraremos como realizar esta tarefa usando o comando 'awk'.
Crie um arquivo de texto
Para acompanhar este tutorial, crie um arquivo de texto delimitado por guia nomeado lista de livros.TXT com o seguinte conteúdo. Este arquivo contém uma lista de livros com seus autores correspondentes. Neste tutorial, mostraremos como imprimir diferentes partes deste arquivo depois de pular a primeira linha.
Segurança cibernética com Bash Paul Troncone, Carl AlbingExemplo 1: Pule a primeira linha de um arquivo usando NR e o operador '>'
A variável NR indica o número de registros em um arquivo. O seguinte comando 'awk' usa a variável NR para pular a primeira linha de um arquivo. O valor de NR é 1 para a primeira linha. O comando a seguir imprimirá linhas para as quais o valor da NR é maior que 1.
Lista de livros de gato.TXT
$ awk '(nr> 1)' Lista de livros.TXT
A saída a seguir será produzida após a execução dos comandos acima. A saída inclui todas as linhas que não sejam a primeira linha do arquivo.
Exemplo 2: Pule a primeira linha usando NR e o '!= 'Operador
O seguinte comando 'awk' é semelhante ao do exemplo anterior. No entanto, o '!= 'O operador de comparação é usado aqui em vez de'> '.
Lista de livros de gato.TXT
$ awk 'nr!= 1 'Livro de livros.TXT
A saída a seguir será produzida após a execução dos comandos acima. A saída mostra todas as linhas que não sejam a primeira linha do arquivo.
Exemplo 3: Pule a primeira linha de um arquivo usando uma declaração condicional
O seguinte comando 'awk' imprimirá as linhas do arquivo se a instrução if for verdadeira. Aqui, a instrução IF será verdadeira apenas quando o valor da NR não for igual a 1.
Lista de livros de gato.TXT
$ awk 'if (nr!= 1) print 'Lista de livros.TXT
A saída a seguir será produzida após a execução dos comandos acima. A saída inclui todas as linhas, exceto a primeira linha do arquivo.
Exemplo 4: Imprima os nomes do livro do arquivo, mas pule a primeira linha
Dois comandos 'awk' são usados neste exemplo para imprimir todos os nomes de livros, exceto o primeiro. O comando 'awk' lerá a primeira coluna do arquivo com base no separador de campo (\ t) e enviará a saída para o segundo comando 'awk'. O segundo comando 'awk' imprimirá a saída desejada.
Lista de livros de gato.TXT
$ awk -f "\ t" 'print $ 1' list.txt | Awk 'nr!= 1 print '
A saída a seguir será produzida após a execução dos comandos acima. A saída mostra todos os nomes dos livros, exceto o do primeiro livro.
Exemplo 5: Formate o conteúdo do arquivo depois de pular a primeira linha
A opção '-f', a variável NR e a função Printf são usadas no comando 'awk' a seguir para gerar saída formatada depois de pular a primeira linha. O comando dividirá o conteúdo do arquivo em colunas com base em \ t, e printf imprimirá as primeiras e as segundas colunas quando o valor da NR for pelo menos 2.
Lista de livros de gato.TXT
$ awk -f '\ t' 'nr> = 2 printf " %30s %20s \ n", $ 1, $ 2' Lista de livros.TXT
A saída a seguir será produzida após a execução dos comandos acima. A saída mostra o conteúdo formatado do arquivo, excluindo a primeira linha do arquivo.
Exemplo 6: Imprima os nomes do livro depois de pular a primeira linha usando NR e NF
O seguinte comando 'awk' usa a opção '-f' e nr e nf para imprimir os nomes dos livros depois de pular o primeiro livro. A opção '-f' é usada para separar o conteúdo da base de arquivos em \ t. NR é usado para pular a primeira linha e a NF é usada para imprimir apenas a primeira coluna.
Lista de livros de gato.TXT
$ awk -f '\ t' 'nr> 1 && nf = 1' Lista de livros.TXT
A saída a seguir será produzida após a execução dos comandos acima. A saída inclui todos os nomes de livros no arquivo, exceto o do primeiro livro.
Exemplo 7: Imprima os nomes formatados dos autores depois de pular a primeira linha
O seguinte comando 'awk' usa a opção '-f' e uma declaração condicional para imprimir os nomes dos autores depois de pular a primeira linha. Aqui, o valor da NR é usado na condição se. Aqui, “Nome do autor: \ n \ n” será impresso como a primeira linha em vez do conteúdo da primeira linha. Os nomes do autor do arquivo serão impressos para os outros valores de NR.
Lista de livros de gato.TXT
$ awk -f '\ t' 'if (nr == 1) printf "\ Nauthor Nome: \ n \ n"; else printf "%s \ n", $ 2 'list.TXT
A saída a seguir será produzida após a execução dos comandos acima. A saída mostra o texto, “Nome do autor:” com uma nova linha, e todos os nomes dos autores são impressos, exceto o primeiro.
Conclusão
A primeira linha de um arquivo pode ser ignorada usando vários comandos Linux. Como mostrado neste tutorial, existem diferentes maneiras de pular a primeira linha de um arquivo usando o comando 'awk'. Nonomavelmente, a variável NR do comando 'awk' pode ser usada para pular a primeira linha de qualquer arquivo.