Field selection basics

Print selected columns

awk "{print $1, $3}" access.log

Example:

ps aux | awk "{print $1, $2, $11}"

Custom field separator

awk -F, "{print $1, $4}" users.csv

Example:

awk -F: "{print $1}" /etc/passwd

Conditions and filters

Filter by numeric condition

awk "$5 > 1000 {print $0}" metrics.txt

Example:

awk -F, "$3 == "ERROR" {print $1,$2}" logs.csv

Match regex in field

awk "$0 ~ /timeout/ {print NR, $0}" app.log

Example:

awk "$2 ~ /^admin/ {print $1}" users.txt

Aggregation examples

Sum one column

awk "{sum += $2} END {print sum}" sales.txt

Example:

awk -F, "{sum += $4} END {print sum}" orders.csv

Count grouped values

awk "{count[$1]++} END {for (k in count) print k, count[k]}" events.log

Example:

awk -F, "{c[$2]++} END {for (k in c) print k, c[k]}" users.csv

Common mistakes / Errores comunes

  • For CSV with quoted commas, plain awk -F, may parse incorrectly.
  • Forgetting END block for final output leads to incomplete aggregates.
  • Unquoted awk programs can be interpreted by shell and fail unexpectedly.
Last updated: February 2026