Exemplos de uso de script Gawk

Exemplos de uso de script Gawk
Uma maneira de trabalhar com arquivos no Linux é usar uma linguagem de script para gerenciar a automação de tarefas repetidas. Um exemplo de uma boa linguagem de script é Awk o que facilita a extração de dados e o trabalho com padrões. A implementação da GNU da linguagem de script AWK é Gawk. Se você ainda está para chegar a um acordo com seu uso, você está com sorte. Este post apresenta os diferentes exemplos do uso de Gawk no Linux e, no final deste guia, você terá um sólido entendimento de trabalhar com ele.

Introdução com Gawk

Se você estiver usando as mais recentes versões do Linux, o GAWK deve ser instalado por padrão. Você pode verificar verificando sua versão.

Existem diferentes maneiras de usar Gawk. As funcionalidades comuns são as seguintes:

  • Formatar linhas de saída
  • Transformando arquivos de dados
  • Arquivos de varredura por linha
  • Linha de entrada dividida em campos
  • Produzindo relatórios formatados
  • Classificação de dados

A sintaxe básica para Gawk é:

$ GAWK [Posix / GNU Style Options] -f Program_file [ -] Arquivo
$ GAWK [Posix / GNU Style Options] [ -] 'Program' Arquivo…

Para usar Gawk, você usa o -f opção para especificar um arquivo de script ou especificar o script na linha de comando diretamente.

Existem três opções importantes a serem observadas ao usar o GAWK:

1. -F arquivo, -File = arquivo: Usado quando você deseja usar Gawk e ler comandos de um arquivo. O arquivo é o script.

2. -v var = val, -assign = var = val: Usado quando você precisa atribuir um valor a uma variável antes de executar um script.

3. -F fs, -Field -Separator = fs: O valor da variável predefinido FS é usado como separador para o campo de entrada.

Variáveis ​​internas

Gawk oferece variáveis ​​embutidas, como:

FS: Usado ao dividir arquivos e contém o caractere do separador de campo.

RS: Contém o separador atual de caracteres.

OFS: Contém o separador de campo de saída que separa os campos que impressam.

NF: O número de campos para o registro de entrada é armazenado na NF.

Ors: Contém o separador de campo de saída que separa as linhas de saída impressas por Awk.

Nr: Contém o número total de linhas de entrada.

No exemplo anterior, usamos * como o separador para as linhas de entrada no arquivo.

Exemplo de uso de Gawk

1. -F

Para classificar um arquivo de texto e imprimir os três primeiros campos separados pelo cólon, use o seguinte comando. Observe que usamos o Passwd Como nosso arquivo aqui:

$ gawk -f: 'print $ 1; imprimir $ 2; imprimir $ 3 ' /etc /passwd

Aqui, nosso separador é um cólon cheio. Como queremos os três primeiros campos, você os especifica como mostrado no exemplo anterior. Você pode ajustá -lo e usar um separador diferente e um número diferente de campos.

2. -f

Para especificar a fonte do programa AWK de um arquivo, use o sinalizador -f seguido pelo arquivo:

$ gawk -f: -f file1.txt /etc /passwd

3. Impressão do conteúdo de um arquivo

Usando Gawk em um arquivo imprime todas as linhas de dados no arquivo.

4. Trabalhando com padrões

Você também pode usar Gawk e imprimir apenas as linhas que correspondem a um determinado padrão. Por exemplo, para imprimir uma linha contendo uma palavra específica, no nosso caso, a palavra é Kim, O comando seria:

$ gawk '/ kim/ print' nome de arquivo

Aqui, o padrão também pode ser um personagem. Por exemplo, para imprimir todas as linhas que contêm um cólon, o comando seria como na imagem a seguir:

Você também pode especificar as linhas específicas para imprimir. Por exemplo, para imprimir as linhas que contêm caracteres específicos, como maiores que 6, a sintaxe é:

$ GAWK 'Comprimento ($ 0)> 6' nome de arquivo

5. Dividindo linhas em campos

Gawk, por padrão, imprime todos os campos ao imprimir linhas em um arquivo. No entanto, você pode especificar qual campo imprimir. O primeiro campo é armazenado no $ 1 e toda a linha é representada como $ 0. Por padrão, toda a linha é impressa, a menos que você especifique para separar os campos com base no espaço em branco.

Por exemplo, para separar as linhas e imprimir apenas o segundo campo de cada linha, o comando seria:

$ gawk 'print $ 2' nome de arquivo

Para adicionar os números de linha, adicione o Nr variável.

O novo comando seria:

$ gawk 'print nr, $ 2' nome de arquivo

6. Obtenha o número de linhas

Pode ser necessário obter o número total de linhas para arquivos grandes, e você pode conseguir isso usando a seguinte sintaxe:

$ Gawk 'end print nr' nome de arquivo

Conclusão

Saber usar o Gawk no Linux é divertido e útil, especialmente ao lidar com dados de texto. Você pode usar os diferentes padrões para extrair e manipular as linhas de dados. Felizmente, os exemplos abordados neste artigo oferecem uma vantagem e abre os olhos usando o GAWK para diferentes atividades.