Primeiros passos com o comando Awk

Noțiuni introductive despre comanda Awk
⌛ Reading Time: 5 minutes

Awk é uma linguagem de programação de processamento de dados poderosa integrada em quase todos os sistemas * nix. Na superfície, parece uma linguagem de programação de propósito geral, mas foi construída para receber entradas e executar ações com base nessa entrada. Se você precisa processar texto com base em certas condições, o awk quase sempre fará o trabalho mais rapidamente do que uma linguagem de propósito geral como C. Também é interpretado, portanto, você evita o longo processo de compilação e depuração de linguagens compiladas.

Curiosidade extra: o nome estranho do programa é um inicialismo dos nomes de seus programadores: Alfred UMAho, peter Weinberger e Brian Kernighan

Sintaxe básica do Awk

Quando chamado na linha de comando, awk segue o padrão básico abaixo:

Awk executará a ação sempre que o padrão corresponder ao arquivo especificado. Se você não especificar um arquivo, o awk será executado na saída padrão. Ao combinar padrões, o awk pode aceitar expressões regulares, bem como entrada programática. Vamos considerar este exemplo básico abaixo:

Este programa de uma linha imprimirá cada linha do arquivo “e-mails” que contém os caracteres com. Em awk $0 refere-se à linha atual, que também é o comportamento padrão. A linha poderia ter sido escrita sem $0, e teria funcionado de forma idêntica.

Campos de impressão

Como o awk pode identificar e analisar separadores de campo, é útil para imprimir colunas ou linhas de dados específicas. Usaremos o arquivo “/ etc / passwd” para este exemplo.

awk-command-getting-started-2

Este programa de uma linha faz algumas coisas. A bandeira -F indica que o próximo caractere (: neste exemplo) deve ser interpretado como o separador de campo. Awk-los imprime o primeiro campo, especificado por $1.

Também podemos imprimir mais de um campo por vez, especificando os campos sequencialmente:

Ele produzirá uma saída semelhante à seguinte.

awk-command-getting-started-4

Isso imprime o quarto e o quinto campos do passwd arquivo com um espaço entre eles. Observe que o espaço está entre aspas duplas. Isso o especifica como um caractere literal dentro do comando de impressão, portanto, é impresso conforme escrito. Também podemos adicionar literais mais complicados para limpar nossa saída:

awk-command-getting-started-5

Isso imprimirá a saída com etiquetas para identificação. E podemos produzir tudo isso em um novo arquivo usando um cursor (>).

Podemos combinar o que sabemos até agora para processar dados extensivamente. Por exemplo, podemos usar expressões regulares para imprimir todas as linhas de um documento que contém um número de telefone válido nos EUA.

Expandindo o poder de correspondência do comando Awk

Awk também pode processar informações usando uma variedade de operandos. Isso inclui operandos padrão como ==, <, >, <=, >=, e !=, bem como operandos específicos de awk ~ e !~, que significa “corresponde” e “não corresponde”, respectivamente. Esses operandos são usados ​​ao comparar expressões regulares com lógica booleana, bem como frases programáticas mais padrão.

Exemplos de comandos Awk

Imprime todas as linhas com mais de oitenta caracteres no arquivo “dados”. Observe a falta de uma instrução print: na ausência de uma ação especificada, awk imprimirá a linha inteira sempre que um padrão corresponder.

Imprime todas as linhas onde o primeiro campo é igual à string “usuário”. Sem um -F sinalizador, awk usará o espaço em branco como o separador de campo padrão. Além disso, observe que awk e o arquivo não são especificados. Isso é para uso em scripts em arquivos separados, conforme abordado a seguir.

Imprime o terceiro campo sempre que o quinto campo corresponder à expressão regular /root/.

Quando o campo 5 não corresponde /root/, imprima o campo três. Isso usa o tipo C if declaração, que também é compatível com awk. Este formato permite mais flexibilidade para programadores familiarizados com linguagens de uso geral.

Salvar scripts em arquivos

Os scripts do Awk também podem ser salvos em arquivos que permitem salvar programas mais complexos:

Ao usar o -f flag, awk executa o script no caminho de arquivo especificado, a saber program.awk. Os comandos nesse programa irão processar os “dados” do arquivo.

As ações também podem ser executadas antes e depois do programa, usando BEGIN e END:

Como você pode ver acima, o # símbolo inicia um comentário, que dura até o final da linha.

Conclusão

Este guia aborda apenas os elementos mais básicos do awk. Há muito mais para construir e explorar além disso. Examinar o Documentação GNU para awk ou A linguagem de programação Awk, e o livro didático awk escrito pelos desenvolvedores do programa.

How useful was this post?

Click on a star to rate it!

Average rating 0 / 5. Vote count: 0

No votes so far! Be the first to rate this post.