wiki:linux:comandos:comando_awk
Table of Contents
Exemplos do comando awk
Nível Básico
- Imprimir uma coluna específica de um arquivo:
awk '{print $1}' arquivo.txt- Imprime a primeira coluna de um arquivo de texto.
- Imprimir múltiplas colunas:
awk '{print $1, $3}' arquivo.txt- Imprime a primeira e a terceira colunas do arquivo.
- Filtrar linhas com base em uma string específica:
awk '/palavra/' arquivo.txt
- Imprime todas as linhas que contêm “palavra”.
- Usar delimitador diferente (por exemplo, CSV):
awk -F',' '{print $1, $2}' arquivo.csv- Usa a vírgula como delimitador para imprimir a primeira e segunda colunas de um arquivo CSV.
Nível Intermediário
- Somar valores de uma coluna:
awk '{soma += $3} END {print soma}' arquivo.txt- Calcula a soma dos valores da terceira coluna de um arquivo.
- Imprimir linhas com base em uma condição numérica:
awk '$3 > 100' arquivo.txt
- Imprime as linhas onde o valor da terceira coluna é maior que 100.
- Substituir texto em uma coluna:
awk '{gsub("velho", "novo", $2); print}' arquivo.txt- Substitui todas as ocorrências de “velho” por “novo” na segunda coluna.
- Imprimir o número de linhas que atendem a uma condição:
awk '$3 > 100 {count++} END {print count}' arquivo.txt- Conta o número de linhas onde o valor da terceira coluna é maior que 100.
Nível Avançado
- Cálculos complexos com múltiplas colunas:
awk '{media = ($2 + $3) / 2; print $1, media}' arquivo.txt- Calcula a média dos valores da segunda e terceira colunas e imprime com a primeira coluna.
- Imprimir linhas entre dois padrões:
awk '/início/,/fim/' arquivo.txt
- Imprime as linhas que estão entre “início” e “fim” no arquivo.
- Ordenar linhas com base em uma coluna:
awk '{print $0}' arquivo.txt | sort -k2- Usa `awk` para imprimir todas as linhas e o `sort` para ordenar pelo valor da segunda coluna.
- Imprimir linhas com base em múltiplas condições:
awk '$2 > 50 && $4 < 100' arquivo.txt
- Imprime as linhas onde o valor da segunda coluna é maior que 50 e o da quarta coluna é menor que 100.
Nível Especializado
- Processar um arquivo CSV e calcular a soma condicional:
awk -F',' '$3 > 50 {soma += $3} END {print soma}' arquivo.csv- Calcula a soma dos valores da terceira coluna para linhas onde o valor é maior que 50, em um arquivo CSV.
- Gerar um relatório formatado:
awk 'BEGIN {print "Usuário\tUso de Disco"} {print $1, "\t", $3} END {print "Fim do Relatório"}' arquivo.txt- Gera um relatório formatado com cabeçalhos e rodapés.
- Imprimir linhas únicas (sem duplicatas) com base em uma coluna:
awk '!seen[$1]++' arquivo.txt
- Imprime linhas únicas, removendo duplicatas com base na primeira coluna.
- Extrair valores numéricos e calcular estatísticas (mínimo, máximo, média):
awk 'BEGIN {min=999999; max=0} {if($2 < min) min=$2; if($2 > max) max=$2; soma+=$2} END {print "Mínimo:", min, "Máximo:", max, "Média:", soma/NR}' arquivo.txt- Calcula o valor mínimo, máximo e a média de uma coluna numérica.
- Manipular arquivos grandes e exibir progresso:
awk '{print $0; if(NR%1000 == 0) print "Processando registro:", NR}' arquivo.txt- Processa arquivos grandes e exibe uma mensagem a cada 1000 registros processados.
wiki/linux/comandos/comando_awk.txt · Last modified: by Wiki Administrator
