Aprenda nesse artigo como utilizar o comando awk do Linux para realizar diversas funções na linha de comando. Tempo estimado de solução: 9min
O awk é um comando do Linux que possuí diversas funções e níveis de complexidade, com ele você pode filtrar colunas em um texto e até mesmo criar lógicas para manipular um conteúdo. Nesse artigo você aprenderá o básico da utilização do comando awk Linux. Vamos lá?
O que é o comando awk?
O comando awk é uma linguagem de script e é de grande ajuda quando você estiver trabalhando com linha de comando. Ele é comumente utilizado para manipulação de texto.
Por exemplo, digamos que você possuí um arquivo com cinco colunas, onde cada coluna possuí alguma informação sobre uma linha. Se você achar que é pertinente visualizar apenas a primeira e terceira coluna, você pode criar esse filtro com o awk de forma simples. Veremos a seguir como.
Se você se interessou, confira mais a respeito na documentação oficial do awk.
Como usar o awk
O awk é um programa que possuí muitas funcionalidades e por isso pode ter uma adaptação complicada num primeiro momento, mas sugiro acompanhar esse artigo reproduzindo os comandos junto ao seu terminal Linux, para se familiarizar com o comando.
É recomendado saber alguns conceitos básicos de Linux para dar seus primeiros passos com o awk. Confira o artigo comandos básicos de Linux.
Verificando a versão do awk
Para verificar a versão do awk execute o seguinte comando em seu terminal:
$ awk --version
Instalar o awk
Se você tentou verificar a versão do awk com o comando anterior e não conseguiu, pode ser que você não tenha o awk instalado na sua distribuição. Execute o seguinte comando para instalar o awk (necessário estar como root):
$ sudo apt-get install gawk
Como exibir o conteúdo de um arquivo
O awk permite visualizar o conteúdo de um arquivo, seria uma das formas mais simples de utilizá-lo. Para exibir o conteúdo de um arquivo execute o seguinte comando:
$ awk '{print}' ARQUIVO
Vamos supor que temos um arquivo chamado clientes.txt
que possuí o seguinte conteúdo:
Nome Idade Estado Classe
Ana 25 SC A
Armando 33 RJ B
Gustavo 32 SP A
Hugo 19 SP C
Julia 28 RS B
Luis 22 BA B
Rafaela 41 ES A
Victor 33 PI A
Utilizando o awk podemos exibir o conteúdo do arquivo clientes.txt
:
Filtrar colunas em um arquivo
O awk permite filtrar uma coluna em específico de um arquivo ou texto. O awk compreende por padrão que o separador de uma colunas é um caractere de espaço ou tab, podendo ser redefinido se necessário. Para isso basta executar o seguinte comando:
$ awk '{print $NUMERO-DA-COLUNA}' ARQUIVO
Veja um exemplo abaixo do awk filtrando a primeira coluna do arquivo clientes.txt
que mencionamos anteriormente:
Além disso, também é possível filtrar mais de uma coluna, veja um exemplo do awk filtrando a primeira e terceira coluna do arquivo clientes.txt
:
Nota: Ao utilizar a coluna $0 o awk vai exibir todas as colunas do arquivo.
Filtrando colunas de uma string
O awk pode filtrar o conteúdo de uma string utilizando o pipe (|
) para encadear a saída de outro comando. Por exemplo, ao utilizarmos o comando ls -la
é exibido no terminal todos os arquivos que estão no diretório atual, seus nomes e suas informações:
Utilize o awk da seguinte maneira para filtrar uma coluna de uma string:
$ ls -la | awk '{print $NUMERO-DA-COLUNA}'
Veja um exemplo ao filtrarmos apenas a nona coluna:
Filtrar uma coluna utilizando outro padrão de separação
Por vezes queremos filtrar uma coluna, porém, às vezes ela não está separada por um caractere de espaço ou tab, e sim algum outro caractere. Nesse caso precisamos definir qual caractere será usado para definir as colunas no conteúdo. Para isso utilizamos a seguinte expressão:
$ awk -F 'CARACTERE' '{print $
NUMERO-DA-COLUNA
}' ARQUIVO
Vamos supor que no arquivo urls-blog-hostgator.txt
possua o seguinte conteúdo:
https://hostgator.com.br/blog/como-adicionar-o-google-analytics-no-wordpress
https://hostgator.com.br/blog/como-adicionar-um-favicon-no-wordpress
https://hostgator.com.br/blog/como-alterar-a-senha-de-administrador-do-drupal
https://hostgator.com.br/blog/como-alterar-a-senha-de-administrador-do-joomla
https://hostgator.com.br/blog/como-alterar-a-senha-de-administrador-do-magento
https://hostgator.com.br/blog/como-alterar-a-senha-do-administrador-wordpress
https://hostgator.com.br/blog/como-alterar-a-senha-do-cpanel
https://hostgator.com.br/blog/como-alterar-idioma-do-wordpress
https://hostgator.com.br/blog/como-armazenar-backups-de-um-servidor-dedicado-ou-vps-no-google-drive
https://hostgator.com.br/blog/como-ativar-o-modo-manutencao-no-wordpress
https://hostgator.com.br/blog/como-colocar-botao-do-whatsapp-no-wordpress
Se quisermos filtrar apenas a parte da slug dessas URLs, podemos utilizar o caractere /
para ser o nosso separador de colunas. Ficaria assim:
No caso acima, informamos após a flag -F
que o caractere que define as colunas é o /
e em seguida, imprimimos a quinta coluna.
Considerações Finais
Nesse artigo você aprendeu sobre o básico do comando awk do Linux e algumas de suas opções de filtragem.
Se você sentiu alguma dificuldade ou então tem alguma sugestão de algo que não foi mencionado, basta deixar aí nos comentários que no futuro podemos trazer atualizações para este artigo. Também indico esses outros materiais relacionados com este assunto:
Até a próxima! :^)