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