User Tools

Site Tools


wiki:linux:comandos:comando_awk

Exemplos do comando awk

Nível Básico

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