Awk - uma introdução e tutorial

Awk - uma introdução e tutorial

Ao trabalhar com o Linux, uma das ferramentas mais poderosas disponíveis para processamento de texto é o comando AWK. É uma ferramenta versátil de linha de comando que pode ser usada para uma ampla gama de tarefas, incluindo pesquisa, filtragem e manipulação de dados de texto.

Neste artigo, abordaremos o básico do AWK, incluindo sua sintaxe, como usá -lo na linha de comando e alguns exemplos básicos de como ela pode ser usada para processar dados de texto.

O que é estranho?

AWK é uma linguagem de programação projetada para processamento de texto e extração de dados. Foi desenvolvido no Bell Labs na década de 1970 e agora é um recurso padrão da maioria dos sistemas operacionais baseados em UNIX, incluindo o Linux.

O AWK é particularmente útil para processar arquivos de texto, pois permite pesquisar, filtrar e manipular dados com base em padrões ou condições específicos. Ele funciona lendo dados de um arquivo ou entrada padrão, aplicando um conjunto de regras ou comandos a esses dados e imprimindo os resultados.

Sintaxe Awk

A sintaxe básica de um comando AWK é o seguinte:

Awk 'Pattern Action' Arquivo
1Awk 'Pattern Action' Arquivo

Aqui, o padrão especifica as condições que devem ser atendidas para a ação a ser executada, e o arquivo especifica o arquivo em que o comando deve operar. Se nenhum arquivo for especificado, o AWK lerá dados da entrada padrão (i.e., o teclado).

O padrão pode ser uma expressão regular ou uma variedade de valores, e a ação pode ser qualquer comando AWK válido, incluindo declarações de impressão, variáveis ​​e loops.

Declarações de uma linha de uma linha

Uma das grandes coisas do Awk é que ele pode ser usado para escrever uma linha - comandos curtos e poderosos que podem ser executados diretamente da linha de comando.

Aqui estão alguns exemplos de frases de uma maneira que você pode usar para executar tarefas comuns de processamento de texto:

  • Imprima a primeira coluna de um arquivo CSV:
    awk -f "," 'print $ 1' arquivo.CSV  
  • Imprima colunas específicas de um arquivo CSV:
    awk -f "," 'Print $ 1, $ 3' arquivo.CSV  

    Este comando usa a opção -f para especificar que o arquivo é separado por vírgula e, em seguida, imprime a primeira e a terceira colunas do arquivo.

  • Conte o número de linhas em um arquivo:
    Awk 'end print nr' arquivo.TXT  
  • Imprima todas as linhas que correspondem a um padrão específico ::
    Arquivo Awk '/ Pattern/ Print'.TXT  
  • Conte o número de ocorrências de um padrão em um arquivo:
    awk '/ padrony/ count ++ end Print count' arquivo.TXT  
  • Imprima a última linha de um arquivo:
    Awk 'end Print' Arquivo.TXT  
  • Imprima o valor médio de uma coluna em um arquivo:
    awk 'sum+= $ 2 end print sum/nr' arquivo.TXT  
  • Imprima a média da segunda coluna em um arquivo:
    awk 'sum += $ 2 end print sum/nr' arquivo.TXT  
  • Imprima as linhas em ordem inversa:
    awk 'a [i ++] = $ 0 end for (j = i-1; j> = 0;) imprima um arquivo [j--]'.TXT  
  • Imprima o conteúdo de um arquivo:
    Arquivo Awk 'Print'.TXT  

    Este comando simplesmente lê o conteúdo do arquivo.txt e imprime cada linha para a tela.

  • Procure linhas que contêm um padrão específico:
    arquivo '/ error/ print'.registro  

    Este comando procura linhas que contêm a palavra "erro" e as imprime na tela.

Você pode gostar: operações aritméticas awk: um guia para iniciantes para métodos básicos de cálculo

Awk for System Administration

Agora, vejamos alguns exemplos práticos de como a AWK pode ser usada para tarefas de administração do sistema.

Analisar arquivos de log

Os arquivos de log são uma ferramenta essencial para os administradores do sistema monitorar o desempenho do sistema e diagnosticar problemas. No entanto, eles podem ser difíceis de ler e analisar, especialmente quando contêm grandes quantidades de dados.

AWK pode ser usado para analisar arquivos de log e extrair informações relevantes. Por exemplo, o comando a seguir extrairá todos os endereços IP de um arquivo de log de acesso Apache:

awk 'print $ 1' acesso.registro
1awk 'print $ 1' acesso.registro

Este comando imprimirá a primeira coluna do arquivo de log de acesso, que contém o endereço IP do cliente.

Monitorando os recursos do sistema

AWK também pode ser usada para monitorar os recursos do sistema, como CPU e uso de memória. Por exemplo, o comando a seguir exibirá os 5 principais processos que consomem mais CPU:

ps aux | awk 'print $ 2, $ 3, $ 11' | classificar -k2rn | Cabeça -n5
1ps aux | awk 'print $ 2, $ 3, $ 11' | classificar -k2rn | Cabeça -n5

Este comando usará o PS para listar todos os processos em execução e depois usará awk para extrair o ID do processo, o uso da CPU e o nome do processo. O comando de classificação é usado para classificar a saída por uso da CPU, e o comando da cabeça é usado para exibir apenas os 5 principais resultados.

Gerando relatórios

Os administradores do sistema geralmente precisam gerar relatórios sobre vários aspectos do desempenho e uso do sistema. AWK pode ser usada para extrair e resumir dados de arquivos de log, arquivos do sistema e outras fontes.

Por exemplo, o comando a seguir gerará um relatório sobre o uso de disco de todos os sistemas de arquivos montados:

df -h | Awk 'imprima $ 1, $ 5'
1df -h | Awk 'imprima $ 1, $ 5'

Este comando usará o DF para listar todos os sistemas de arquivos montados e, em seguida.

Modificando arquivos de configuração

Os arquivos de configuração são uma parte essencial da administração do sistema e geralmente precisam ser modificados para otimizar o desempenho do sistema ou corrigir problemas. AWK pode ser usado para modificar os arquivos de configuração no lugar, sem a necessidade de edição manual.

Por exemplo, o comando a seguir substituirá todas as ocorrências de "localhost" por "exemplo.com ”no arquivo de configuração do Apache:

awk 'gsub (/localhost/, "Exemplo.com "); print '/etc/apache2/apache2.conf> /tmp /apache2.conf
1awk 'gsub (/localhost/, "Exemplo.com "); print '/etc/apache2/apache2.conf> /tmp /apache2.conf

Este comando usará o AWK para pesquisar a string "localhost" no arquivo de configuração do Apache e substituí -lo por "Exemplo.com ”. O arquivo de configuração modificado é então gravado em um arquivo temporário.

Conclusão

AWK é uma ferramenta poderosa para processamento de texto e extração de dados no Linux. É relativamente fácil de aprender e fornece uma ampla gama de recursos que podem ser usados ​​para manipular e transformar dados de texto.

Neste artigo, abordamos o básico do AWK, incluindo sua sintaxe, como usá -lo na linha de comando e alguns exemplos básicos de como ela pode ser usada para processar dados de texto. Também abordamos as frases de uma vez, que são comandos poderosos que podem ser usados ​​para executar tarefas comuns de processamento de texto com mínimo esforço.

Com esse conhecimento, você pode começar a explorar recursos mais avançados do AWK, incluindo expressões regulares, variáveis ​​e funções. Ao dominar o AWK, você pode se tornar um usuário Linux mais eficiente e eficaz, capaz de processar grandes quantidades de dados de texto com facilidade.