Awk - Recursos avançados

Awk - Recursos avançados

AWK é uma poderosa ferramenta de processamento e manipulação de texto que fornece uma gama de recursos avançados para usuários experientes. Alguns dos recursos avançados mais úteis do AWK incluem expressões regulares, declarações condicionais, matrizes, funções e funções de manipulação de cordas. Com esses recursos, o AWK fornece um conjunto de ferramentas poderoso e flexível que pode ser usado para uma ampla gama de tarefas, incluindo análise de arquivos de log, monitoramento do sistema, extração e transformação de dados e geração de relatórios.

Neste artigo, exploraremos alguns dos recursos AWK mais úteis e poderosos para usuários avançados. Este tutorial cobre:

  1. Usando expressões regulares em Awk
  2. Usando as declarações condicionais
  3. Trabalhando com matrizes em Awk
  4. Trabalhando com funções em Awk
  5. Manipulação de string com awk

Vamos começar o artigo:

Expressões regulares

Uma das características mais poderosas do AWK é o seu suporte para expressões regulares. Expressões regulares são padrões que descrevem conjuntos de cordas e podem ser usados ​​para corresponder, pesquisar e manipular dados de texto.

Por exemplo, o comando a seguir imprimir todas as linhas que contêm a palavra "erro" em um arquivo de log:

Awk '/Error/' LogFile.TXT
1Awk '/Error/' LogFile.TXT

Este comando usará o AWK para pesquisar o arquivo de log por linhas que contêm a palavra "erro" e imprimirão essas linhas no console.

Declarações condicionais

A AWK suporta declarações condicionais, que permitem executar diferentes comandos com base nos valores de variáveis ​​ou expressões.

Por exemplo, o comando a seguir imprimirá "par" ou "ímpar" para cada número em um arquivo, dependendo se é par ou ímpar:

awk 'if ($ 1 % 2 == 0) imprimir $ 1, "par"; caso contrário, imprimir $ 1, "Odd" 'números.TXT
1awk 'if ($ 1 % 2 == 0) imprimir $ 1, "par"; caso contrário, imprimir $ 1, "Odd" 'números.TXT

Este comando usará AWK para verificar se cada número no arquivo é par ou ímpar e imprimirá o resultado no console.

Matrizes

A AWK também suporta matrizes, que permitem armazenar e manipular conjuntos de valores ou estruturas de dados.

Por exemplo, o comando a seguir contará o número de ocorrências de cada palavra em um arquivo de texto:

awk 'for (i = 1; i<=NF; i++) words[$i]++ END for (w in words) print w, words[w] ' textfile.txt
1awk 'for (i = 1; i<=NF; i++) words[$i]++ END for (w in words) print w, words[w] ' textfile.txt

Este comando usará awk para percorrer cada palavra no arquivo e armazenar a contagem de cada palavra em uma matriz. O resultado final é impresso no console.

Funções

A AWK suporta funções definidas pelo usuário, que permitem criar código reutilizável para tarefas comuns.

Por exemplo, o comando a seguir usará uma função definida pelo usuário para converter as temperaturas de Fahrenheit em Celsius:

Awk 'Função f2c (f) return (f-32)*(5/9) print $ 1, f2c ($ 2)' temperaturas.TXT
1Awk 'Função f2c (f) return (f-32)*(5/9) print $ 1, f2c ($ 2)' temperaturas.TXT

Este comando usará AWK para ler temperaturas em Fahrenheit de um arquivo e as converterá em Celsius usando uma função definida pelo usuário.

Manipulação de string

A AWK suporta uma variedade de funções de manipulação de string, que permitem modificar, concatenar e dividir strings.

Por exemplo, o comando a seguir dividirá uma lista de valores separada por vírgula em campos separados:

awk -f ', "print $ 1, $ 2' dados.CSV
1awk -f ',' 'print $ 1, $ 2' dados.CSV

Este comando usará o AWK para dividir um arquivo separado por vírgula em campos separados e imprimirá os dois primeiros campos no console.

Conclusão

A AWK fornece uma gama de recursos avançados para usuários experientes, incluindo expressões regulares, declarações condicionais, matrizes, funções e manipulação de cordas. Ao dominar esses recursos, você pode se tornar um especialista em processamento e manipulação de texto mais eficiente e eficaz e economizar tempo e esforço em seu trabalho.