Awk - Recursos avançados
- 732
- 210
- Enrique Crist
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:
- Usando expressões regulares em Awk
- Usando as declarações condicionais
- Trabalhando com matrizes em Awk
- Trabalhando com funções em Awk
- 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.TXT1 | Awk '/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.TXT1 | awk '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.txt1 | awk '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.TXT1 | Awk '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.CSV1 | awk -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.
- « Lista de verificação de manutenção do servidor
- Práticas recomendadas e dicas para escrever scripts de shell como pro »