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ência
Luke Skywalker Jedi Resistência
Darth Vader Sith Império
Obi-Wan Kenobi Jedi Resistência
Para imprimir somente a primeira coluna:
$ awk '{print $1}' arquivo
Leia
Luke
Darth
Obi-Wan
Para imprimir a segunda coluna:
$ awk '{print $2}' arquivo
Organa
Skywalker
Vader
Kenobi
É possível também brincar com o texto:
$ awk '{print $1 " " $2 " é um " $3 " da "$4}' arquivo
Leia Organa é um General da Resistência
Luke Skywalker é um Jedi da Resistência
Darth Vader é um Sith da Império
Obi-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/passwd
root
bin
daemon
adm
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 "\");" }' arquivo
insert 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 if, for 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
Tag:/dev, bash, certificação, certificaçãolinux, code, Comptia, developer, empreendedorismo, exame, freesoftware, gnu, hack, Linux, linuxfan, linuxfun, linuxmint, lovelinux, LPI, LPIC, management, nerd, opensource, php, prova, shell, software, softwarelivre, sql, tech, ti, unix