fbpx Certificação Linux: Comando awk no Linux (processa dados) [Guia Básico]

Blog

Comando awk no Linux (processa dados) [Guia Básico]

📅 06/12/2021 ⏱ 3 min ✍️ Uira Ribeiro
Linuxcomandos
Comando awk no Linux (processa dados) [Guia Básico]

O comando awk no Linux é uma poderosa ferramenta, que permite processar textos e fazer alterações em arquivos. Ele pode interpretar pequenos scripts para processar algum arquivo ou texto.

Existem outras variantes do AWK, tais como: BWK, GAWK e MAWK, que são implementações de diferentes desenvolvedores com algumas melhorias.

O awk pode receber comandos diretamente como parâmetros, ou através de um arquivo, utilizando-se a opção "-f' seguido do nome do arquivo que contém os comandos.

Exemplo:

Dado um arquivo com um texto separado por espaços, o comando "print" servirá para exibir algo na tela. As variáveis $0, $1, $2, $3 e $4 pode imprimir todo o conteúdo ($0), ou cada coluna do texto:

Para imprimir todo o conteúdo do arquivo:

$ awk '{print $0}' arquivo Leia Organa General ResistênciaLuke Skywalker Jedi ResistênciaDarth Vader Sith ImpérioObi-Wan Kenobi Jedi Resistência

Para imprimir somente a primeira coluna:

$ awk '{print $1}' arquivo LeiaLukeDarthObi-Wan

Para imprimir a segunda coluna:

$ awk '{print $2}' arquivo OrganaSkywalkerVaderKenobi

É possível também brincar com o texto:

$ awk '{print $1 " " $2 " é um " $3 " da "$4}' arquivo Leia Organa é um General da ResistênciaLuke Skywalker é um Jedi da ResistênciaDarth Vader é um Sith da ImpérioObi-Wan Kenobi é um Jedi da Resistência

Para listar somente os logins dos usuários no arquivo /etc/passwd, pode-se usar a opção "-F", indicando o delimitador:

$ awk -F':' '{ print $1 }' /etc/passwdrootbindaemonadm

O awk pode também ser usado para transformar um arquivo texto ou CSV, para comandos SQL:

$ awk '{print "insert into usuario (nome,sobrenome,cargo,departamento) values (\"" $1 "\",\"" $2 "\",\"" $3 "\",\"" $4 "\");" }' arquivoinsert into usuario (nome,sobrenome,cargo,departamento) values ("Leia","Organa","General","Resistência");insert into usuario (nome,sobrenome,cargo,departamento) values ("Luke","Skywalker","Jedi","Resistência");insert into usuario (nome,sobrenome,cargo,departamento) values ("Darth","Vader","Sith","Império");insert into usuario (nome,sobrenome,cargo,departamento) values ("Obi-Wan","Kenobi","Jedi","Resistência");

Único cuidado que se deve ter é referenciar as aspas que compõe o comando SQL com a contra-barra "\", para que sejam interpretadas como texto e não como aspas.

O awk aceita as diretivas iffor e while como na linguagem C, e também operadores matemáticos e muitas outras coisas. Enfim, é uma ferramenta completa para transformar arquivos.

Aprenda muito mais sobre Linux em nosso curso online. Você pode efetuar a matrícula aqui. Se você já tem uma conta, ou quer criar uma, basta entrar ou criar seu usuário aqui.

Gostou? Compartilhe

Uira Ribeiro

Prof. Uirá Ribeiro

Chair do Board do Linux Professional Institute

Especialista Linux com mais de 20 anos de experiência.
Autor de 5 livros e mentor de mais de 14.000 alunos certificados.
20 certificações de alto nível, incluindo LPIC-3, CKA, RHCE e AWS Solutions Architect.

WhatsApp