Como usar o comando 'Next' com AWK no Linux - Parte 6
- 838
- 187
- Wendell Legros
Nesta sexta parte da série AWK, vamos olhar para usar próximo
comando, que diz Awk Para pular todos os padrões e expressões restantes que você forneceu, mas leia a próxima linha de entrada.
O próximo
O comando ajuda você a impedir a execução do que eu me referiria como etapas de desperdício de tempo em uma execução de comando.
Para entender como funciona, vamos considerar um arquivo chamado Food_list.TXT isso se parece com o seguinte:
Itens da lista de alimentosSem item_name Preço Quantidade 1 mangas $ 3.45 5 2 maçãs $ 2.45 25 3 abacaxi $ 4.45 55 4 tomates $ 3.45 25 5 Onions $ 1.45 15 6 Bananas $ 3.45 30
Considere executar o seguinte comando que sinalizará itens alimentares cuja quantidade é menor ou igual a 20 com um (*)
Assine no final de cada linha:
# awk '$ 4 20 print $ 0;' Food_list.TXT Sem item_name Preço Quantidade 1 mangas $ 3.45 5 * 2 maçãs $ 2.45 25 3 abacaxi $ 4.45 55 4 tomates $ 3.45 25 5 Onions $ 1.45 15 * 6 bananas $ 3.45 30
O comando acima realmente funciona da seguinte maneira:
- Primeiro, ele verifica se a quantidade, quarto campo de cada linha de entrada é menor ou igual a 20, Se um valor atingir essa condição, é impresso e sinalizado com o
(*)
Assine no final usando a expressão um:$ 4 <= 20
- Em segundo lugar, ele verifica se o quarto campo de cada linha de entrada é maior que 20, E se uma linha atender à condição, ela será impressa usando a expressão dois:
$ 4> 20
Mas há um problema aqui, quando o Primeira expressão é executado, uma linha que queremos sinalizar é impressa usando: printf "%s \ t%s \ n", $ 0, "**";
E então na mesma etapa, o segunda expressão também é verificado, o que se torna um fator de perda de tempo.
Portanto, não há necessidade de executar a segunda expressão, $ 4> 20
novamente após a impressão já sinalizada linhas que foram impressas usando a primeira expressão.
Para lidar com esse problema, você precisa usar o próximo
Comando o seguinte:
# awk '$ 4 20 print $ 0;' Food_list.TXT Sem item_name Preço Quantidade 1 mangas $ 3.45 5 * 2 maçãs $ 2.45 25 3 abacaxi $ 4.45 55 4 tomates $ 3.45 25 5 Onions $ 1.45 15 * 6 bananas $ 3.45 30
Após uma única linha de entrada é impressa usando $ 4 <= 20
printf "%s \ t%s \ n", $ 0, "*"; próximo ;
, o próximo
O comando incluído ajudará a pular a segunda expressão $ 4> 20
print $ 0;
, Portanto, a execução vai para a próxima linha de entrada sem ter que perder tempo para verificar se a quantidade é maior que 20.
O próximo O comando é muito importante é escrever comandos eficientes e, quando necessário, você sempre pode usar para acelerar a execução de um script. Prepare -se para a próxima parte da série, onde procuraremos usar a entrada padrão (Stdin) como entrada para Awk.
Espero que você encontre isso como orientar útil e que possa colocar seus pensamentos ao escrever, deixando um comentário na seção de comentários abaixo.
- « Como adicionar proteção antivírus e spam ao servidor de correio postfix com clamav e spamassassin - Parte 3
- Como configurar o servidor de correio Postfix e Dovecot com o banco de dados (MARIADB) com segurança - Parte 1 »