===== 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.