Aprenda Linux

Comando Linux awk com 10 exemplos

Comando Linux awk com 10 exemplos

Os sistemas de computador sempre foram usados ​​para analisar dados valiosos armazenados em arquivos de texto simples. Por sua vez, os próprios sistemas de computador são gerenciados por meio de arquivos de log. O que é potencialmente comum nessas duas situações é que elas contêm uma grande quantidade de dados, que muitas vezes precisam ser simplificados antes de realmente ler os dados; caso contrário, é apenas confuso.

Por exemplo, se você estiver lendo alguns dados organizados em uma forma tabular, você deseja algumas colunas, não deseja outras.

Esse requisito era terrível mesmo no passado e, conseqüentemente, o Projeto GNU possui uma ferramenta incrível que ajuda os usuários a filtrar e extrair dados para uma melhor experiência. Essa ferramenta é AWK.

História

AWK é na verdade uma linguagem de programação dedicada ao processamento de texto. É usado para extração de dados em padrões específicos. Foi desenvolvido na década de 1970 pelo Bell Labs, por Alfred Aho, Peter Weinberger e Brian Kernighan (as iniciais de seus sobrenomes deram origem ao nome). O desenvolvimento do awk não parou por aí. Uma nova versão é introduzida em 1985, que trouxe novas mudanças ao comando awk, incluindo a capacidade de lidar com vários fluxos de entrada, expressões regulares computadas, funções definidas pelo usuário e muito mais! Em suma, a atualização tornou uma linguagem de programação mais poderosa.

Awk tem uma implementação diferente. Para garantir que haja uma implementação adequada que ofereça uma abordagem padrão, Paul Rubin escreveu gawk em 1986. Funcionou bem com o awk mais recente.

Além disso, na versão de 1989 do System V, novos recursos foram adicionados. Os desenvolvedores também melhoraram seus cantos escuros, tornando melhor para os programadores e usuários usá-lo. A última mudança aconteceu em 1997, quando o awk viu o acesso à rede - proporcionando aos usuários a capacidade de resolver problemas remotamente.

A última reescrita feita em 2011, quando John Haque reescreveu as partes internas gawk.

Coisas que você pode fazer com AWK

Até agora, deve estar um pouco claro o que AWK é capaz de. É uma linguagem de script de propósito geral que permite lidar com o processamento de texto. Os usuários avançados também podem usá-lo para análises e relatórios.

AWK não é como outras linguagens de programação, pois é orientado a dados, ao invés de uma linguagem de programação procedural. Isso significa que você pode usá-lo de forma eficaz para realizar ações em relação à entrada de texto. Em suma, você pode usá-lo para transformar dados, inseri-los e também enviá-los como saída padrão.

Resumindo, você pode usar o AWK para fazer operações simples, como dividir cada linha de entrada em campos, verificar um arquivo linha por linha, executar uma ação (ões) em linhas correspondentes e assim por diante! O comando awk também é útil para relatórios de procedimentos formatados e transforma arquivos de dados. Além disso, você também obtém acesso a construções de programação, como loops e condicionais, operações aritméticas e de string e linhas de saída de formato.

Como funciona o awk

Nesta seção, vamos aprender como o awk funciona. É importante aprender que o awk tem diferentes implementações. Para garantir que estamos na mesma página, discutiremos e usaremos a implementação GNU - que é popularmente conhecida como gawk. Na maioria dos casos, o gawk tem um link simbólico para o intérprete do awk.

Para obter um bom entendimento, primeiro precisamos entender os registros e os campos.

É bem sabido que o awk pode processar fluxos textuais e arquivos de dados. Para processar os dados, a entrada é dividida em campos e registros. Para garantir que o awk não fique sobrecarregado, um registro é processado a qualquer momento até que o fim da entrada seja alcançado. Além disso, os registros são divididos em seções simples usando um separador de registro usando caracteres. Além disso, cada registro é separado por caracteres de nova linha. Isso significa que cada linha pode ser denominada como um registro.

Você pode escolher definir um novo separador de registro usando a variável RS.

Em seguida, vem o separador arquivado. Como de costume, cada registro possui campos, e eles são separados usando o separador de campo. O separador de campo pode ser espaço em branco, tabulação, caracteres de nova linha e espaço. Além disso, cada campo é referenciado usando o símbolo $, enquanto o número do campo começa com 1. Isso significa que o primeiro campo pode ser denotado como $ 1, enquanto o segundo campo é denotado como $ 2. Dessa forma, o enésimo campo pode ser denotado como $ nf.

O programa awk

O segundo aspecto do awk é o programa awk. Se você quiser trabalhar com awk, você precisa escrever um programa que permite que o comando execute ou processe o texto. O programa awk oferece muitas funcionalidades usando regras e funções definidas pelo usuário. As regras funcionam com um par de ação ou um padrão, e as regras são separadas por ponto-e-vírgula ou nova linha.

Caso você esteja se perguntando, um programa awk se parecerá com o abaixo.

padrão ação padrão ação .. 

Em suma, o programa awk funciona combinando os registros com base em padrões. Se o padrão for encontrado no registro, ele irá processá-lo. Caso contrário, todo o registro é correspondido para garantir que algo corresponda com base nas regras.

Exemplos de comandos awk

Agora que temos um bom entendimento do comando awk e como ele funciona, agora é hora de verificarmos alguns dos exemplos de comando awk.

Se você nunca usou o awk antes, pode querer saber que o awk pode ser usado com opções como abaixo:

arquivo de programa de opções awk

As opções que você pode usar com o awk incluem o seguinte:

Exemplo 1: Leia Scripts AWK

Uma das maneiras mais comuns de usar o awk é ler scripts. Como um usuário Linux, você pode criar um script awk usando aspas simples.

Para fazer isso, você precisa digitar o seguinte comando no terminal.

$ awk 'print "Bem-vindo ao Hello, World - tutorial AWK"'

No exemplo acima, o que você digitar será retornado para a própria tela. O comando continuará em execução até que você o finalize pressionando CTRL + D.

Exemplo 2: usando vários comandos

Outro uso comum do awk é usar vários comandos. Como usuário, você pode querer combinar dois comandos awk em um para obter o resultado desejado. Neste exemplo, iremos imprimir uma string e então substituir a segunda palavra na string por uma nova entrada.

$ echo "Olá, mundo" | awk '$ 2 = "Universo; imprimir $ 0"'

No exemplo acima, nós primeiro repetimos “Hello, World” para o terminal. Em seguida, concatenamos outro comando awk onde substituímos a segunda palavra por Universe - e, finalmente, geramos a string, que é Hello Universe.

Exemplo 3: usando variável

As variáveis ​​permitem que você armazene informações e acesse-as. Se você já usou linguagens de programação antes, certamente as conhece. No caso do awk, você o usa para processar arquivos de texto. Usando as variáveis, você pode acessar certos campos de dados dentro do arquivo, assim como abaixo.

Para este propósito, criamos um novo arquivo de texto, mynewfile, onde inserimos algumas linhas aleatórias, mas bonitas.

Em seguida, você precisa executar o comando, conforme mostrado abaixo.

awk 'print $ 1' mynewfile

Como você pode ver, ele produz aquela variável específica que mostra esse campo do arquivo. Além disso, você deve ver o erro que cometi.

Exemplo 4: pré-processamento AWK

Com o comando awk, você pode adicionar pré-processamento. Para fazer isso, você precisa usar a palavra-chave BEGIN.

Se você está lendo com atenção, criamos um novo arquivo acima. Vamos tentar usar o pré-processamento do awk para mostrar o conteúdo do arquivo.

O comando para isso é o seguinte.

awk 'awk BEGIN print "O conteúdo do arquivo:"> print $ 0', mynewfile

A captura de tela do exemplo acima não está correta. Usei “Begin” em vez de “BEGIN”, e é por isso que você não vê a execução da instrução de impressão. Deixo isso para você experimentar e ver como vai o seu resultado!

Exemplo 5: Lendo o script do arquivo

Este é complicado. Aqui, você pode usar o script awk para ler um arquivo.

Criamos um novo script que contém o seguinte.

imprimir $ 1 "universo começa em" $ 6 "

Nós salvamos o arquivo como um newscript.

Agora, execute o seguinte comando no terminal.

$ awk -F: -f newscript / etc / passwd

Fascinante né!

Exemplo 6: Pós-processamento AWK

A seguir, damos uma olhada no pós-processamento de AWK. Funciona de forma semelhante ao pré-processamento, mas desta vez, o pós-processamento usa o comando END.

$ awk 'BEGIN print "O conteúdo do arquivo começa agora:">> print $ 0>> END print "O arquivo termina"' mynewfile

Exemplo 7: variáveis ​​definidas pelo usuário

Você também pode usar variáveis ​​dentro do comando awk sem usar um número ou cifrão.

Abaixo está um exemplo.

$ awk 'BEGIN test = "Bem-vindo à família FossLinux Awesome Linux" print test'

Exemplo 8: funções integradas

Os comandos awk também são úteis com suas funções embutidas. Por exemplo, você pode usar funções matemáticas e também funções de String.

$ awk 'BEGIN x - "fossLinux"; imprimir toupper (x) '
$ awk 'BEGIN x = exp (35); imprimir x '

Exemplo 9: formatação de impressão

Você também pode formatar a função printf que vem com o awk. Existem muitos modificadores que você pode usar. Por exemplo, você pode usar c para imprimir como uma string; você também pode usar d para um valor inteiro e assim por diante.

$ awk 'BEGIN x = 200 * 200 printf "O resultado é:% e \ n", x'

Exemplo 10: Comandos Estruturados

Você também pode usar comandos estruturados como if, else, while ou for loop. Vamos ver o exemplo abaixo para o comando if.

$ awk 'if ($ 1> 20) print $ 2' mynewfile

Conclusão

Isso nos leva ao final do nosso tutorial de comando awk. Então, você achou útil e vai usá-lo para o seu trabalho? Comente abaixo e deixe-nos saber.

O botão do meio do mouse não funciona no Windows 10
O botão do meio do mouse ajuda você a percorrer longas páginas da web e telas com muitos dados. Se isso parar, você vai acabar usando o teclado para r...
Como alterar os botões esquerdo e direito do mouse no PC com Windows 10
É normal que todos os dispositivos de mouse de computador sejam ergonomicamente projetados para usuários destros. Mas existem dispositivos de mouse di...
Emular cliques do mouse passando o mouse usando o mouse sem cliques no Windows 10
Usar um mouse ou teclado na postura errada de uso excessivo pode resultar em muitos problemas de saúde, incluindo tensão, síndrome do túnel do carpo e...