📖 Guide

Awk — Complete Reference

Comprehensive awk cheat sheet covering pattern matching, string functions, arrays, control flow, output formatting, and common one-liners.

73 commands across 9 categories

Basics

CommandDescription
awk '{print}' file
Print every line (like cat)
awk '{print $1}' file
Print the first field of each line
awk '{print $1, $3}' file
Print first and third fields separated by space
awk -F: '{print $1}' /etc/passwd
Use colon as field separator
awk '{print NR, $0}' file
Print line numbers before each line
awk 'END {print NR}' file
Count total number of lines
awk '{print $NF}' file
Print the last field of each line
awk -v var=value '{print var, $1}' file
e.g. awk -v threshold=100 '$1 > threshold' data.txt
Pass external variable into awk

Pattern Matching

CommandDescription
awk '/pattern/' file
Print lines matching a regex pattern
awk '!/pattern/' file
Print lines NOT matching a pattern
awk '$3 > 100' file
Print lines where field 3 is greater than 100
awk '$1 == "admin"' file
Print lines where field 1 equals 'admin'
awk '/start/,/end/' file
Print range of lines between two patterns (inclusive)
awk '$2 ~ /^[A-Z]/' file
Print lines where field 2 starts with an uppercase letter
awk '$2 !~ /test/' file
Print lines where field 2 does NOT match 'test'
awk 'NR>=5 && NR<=10' file
Print lines 5 through 10

Built-in Variables

CommandDescription
NR
Current line (record) number across all files
NF
Number of fields in the current line
FS
Input field separator (default: whitespace)
OFS
Output field separator (default: space)
RS
Input record separator (default: newline)
ORS
Output record separator (default: newline)
FILENAME
Name of the current input file
FNR
Line number within the current file (resets per file)
BEGIN {OFS=","} {$1=$1; print}
e.g. Reassigning $1=$1 forces awk to rebuild the line with OFS
Reformat output to CSV by setting OFS

String Functions

CommandDescription
length($0)
e.g. awk '{print length($0)}' file
Return the length of the current line
substr($1, 2, 5)
Extract substring: field 1, starting at position 2, length 5
index($0, "search")
Return position of first occurrence of 'search' in line
split($0, arr, ":")
Split line by colon into array arr; returns number of elements
sub(/old/, "new")
Replace first occurrence of pattern in current line
gsub(/old/, "new")
Replace all occurrences of pattern in current line
tolower($1)
Convert field 1 to lowercase
toupper($1)
Convert field 1 to uppercase
match($0, /[0-9]+/)
Find regex match; sets RSTART and RLENGTH

Mathematical Functions

CommandDescription
awk '{sum += $1} END {print sum}' file
Sum all values in field 1
awk '{sum += $1} END {print sum/NR}' file
Calculate the average of field 1
int(3.9)
Truncate to integer (returns 3)
sqrt(144)
Square root (returns 12)
sin(x) / cos(x) / atan2(y,x)
Trigonometric functions (radians)
log(x) / exp(x)
Natural logarithm and e^x
srand(); rand()
Seed random generator and get random number between 0 and 1
awk 'BEGIN {print 2^10}'
Exponentiation (prints 1024)

Arrays

CommandDescription
arr[key] = value
Assign value to associative array
for (key in arr) print key, arr[key]
Iterate over all array elements
if (key in arr)
Check if key exists in array
delete arr[key]
Remove element from array
delete arr
Delete entire array (GNU awk)
length(arr)
Return number of elements in array (GNU awk)
awk '{count[$1]++} END {for (k in count) print k, count[k]}' file
Count occurrences of each unique value in field 1
asorti(arr, sorted)
Sort array indices into sorted array (GNU awk)

Control Flow

CommandDescription
if (condition) action; else other
e.g. awk '{if ($1 > 50) print "high"; else print "low"}' file
Conditional execution
for (i=1; i<=NF; i++) print $i
C-style for loop (print each field on its own line)
while (condition) action
While loop
do { action } while (condition)
Do-while loop (runs at least once)
next
e.g. awk '/skip/ {next} {print}' file
Skip to the next input line
exit
Stop processing and run END block
BEGIN { ... }
Execute before processing any input
END { ... }
Execute after all input is processed

Output Formatting

CommandDescription
printf "%s\t%d\n", $1, $2
Formatted output with printf (string, integer, newline)
printf "%10s", $1
Right-align field in 10-character width
printf "%-10s", $1
Left-align field in 10-character width
printf "%.2f", $1
Print floating point with 2 decimal places
print $1 > "output.txt"
Redirect output to a file
print $1 >> "output.txt"
Append output to a file
print $1 | "sort -n"
Pipe output to external command

Common One-liners

CommandDescription
awk '{print NF}' file
Print number of fields per line
awk 'NF' file
Remove blank lines (only print lines with fields)
awk '!seen[$0]++' file
Remove duplicate lines (preserves order)
awk '{$1=""; print substr($0,2)}' file
Remove the first field from each line
awk '{line[NR]=$0} END {for (i=NR;i>=1;i--) print line[i]}' file
Reverse file line by line (like tac)
awk '{for(i=NF;i>=1;i--) printf "%s ",$i; print ""}' file
Reverse the order of fields on each line
awk -F, '{print $2}' file.csv
Extract second column from a CSV file
awk 'NR==FNR{a[$1];next} $1 in a' file1 file2
Print lines from file2 where field 1 appears in file1

More Guides

🌿
Git Commands
Complete Git command reference — from basics to advanced workflows. Searchable, with examples.
📝
Vim Commands
Complete Vim/Vi command reference — modes, motions, editing, search, and advanced features.
🐳
Docker Commands
Complete Docker & Docker Compose command reference — containers, images, volumes, networks, and orchestration.
🔤
Regex Reference
Complete regular expression reference — syntax, patterns, quantifiers, groups, lookaheads, and common recipes.
🐧
Linux Commands
Complete Linux/Bash command reference — file management, text processing, networking, system admin, and shell scripting.
☸️
Kubernetes Commands
Complete Kubernetes & kubectl command reference — pods, deployments, services, configmaps, and cluster management.
🐍
Python Reference
Complete Python reference — syntax, data structures, string methods, file I/O, comprehensions, and common patterns.
🗃️
SQL Reference
Complete SQL reference — queries, joins, aggregation, subqueries, indexes, and database management.
🌐
Nginx Reference
Complete Nginx configuration reference — server blocks, locations, proxying, SSL, load balancing, and caching.
🔐
SSH Commands
Complete SSH reference — connections, key management, tunneling, config, SCP/SFTP, and security hardening.
👷
Jenkins Reference
Complete Jenkins reference — pipeline syntax, Jenkinsfile, plugins, CLI, agents, and CI/CD patterns.
📨
HTTP Headers Reference
Complete HTTP headers reference — request headers, response headers, caching, security, CORS, and content negotiation. Searchable, with examples.
🐘
PostgreSQL Reference
Comprehensive PostgreSQL reference — from connection basics to advanced features like JSONB, full-text search, window functions, and performance tuning.
Async Patterns Reference
Multi-language async/concurrency patterns — JavaScript, Python, Go, Rust, Java, and universal concurrency patterns.
📡
Protobuf & gRPC Reference
Comprehensive reference for Protocol Buffers (proto3) and gRPC — message definitions, services, streaming, and common patterns.
📚
JS Array Methods
Complete JavaScript Array methods reference — creating, searching, transforming, sorting, iterating, and common patterns. Searchable, with examples.
🌊
Tailwind CSS Reference
Complete Tailwind CSS reference — layout, spacing, typography, colors, responsive design, states, and common patterns. Searchable, with examples.
GraphQL Reference
Complete GraphQL reference — schema definition, types, queries, mutations, directives, fragments, and common patterns. Searchable, with examples.
💻
VS Code Shortcuts
Complete VS Code keyboard shortcuts — editing, navigation, search, multi-cursor, terminal, debug, and more. Searchable, with Cmd/Ctrl notation.
🔲
CSS Grid Reference
Complete CSS Grid reference — container properties, item placement, grid functions, and common layout patterns. Searchable, with examples.
📦
CSS Flexbox Reference
Complete CSS Flexbox reference — container properties, item properties, and common layout patterns. Searchable, with examples.
⚛️
React Hooks Reference
Complete React Hooks reference — useState, useEffect, useContext, custom hooks, and common patterns. Searchable, with examples.
🔷
TypeScript Reference
Complete TypeScript reference — types, interfaces, generics, utility types, and advanced patterns. Searchable, with examples.
☁️
AWS CLI Reference
Complete AWS CLI reference — EC2, S3, IAM, Lambda, ECS, RDS, CloudFormation, and common operations.
🐹
Go Reference
Complete Go (Golang) reference — syntax, types, functions, concurrency, error handling, and common patterns.
💠
PowerShell Reference
Complete PowerShell reference — cmdlets, pipelines, scripting, file operations, remote management, and Active Directory.
💾
Redis Commands
Complete Redis command reference — strings, hashes, lists, sets, sorted sets, pub/sub, transactions, and server management.
🏗️
Terraform Commands
Complete Terraform reference — init, plan, apply, state management, modules, workspaces, and HCL syntax.
⚙️
Ansible Commands
Complete Ansible reference — playbooks, modules, inventory, roles, vault, and ad-hoc commands.
🟨
JavaScript
Complete JavaScript reference — variables, types, operators, strings, arrays, objects, functions, async, DOM, ES6+, and more.
🎨
CSS
Complete CSS reference — selectors, box model, positioning, typography, animations, media queries, custom properties, and more.
📄
HTML
Complete HTML reference — document structure, text content, forms, media, semantic elements, accessibility, and more.
Java
Complete Java reference — data types, strings, collections, OOP, interfaces, exceptions, file I/O, streams, lambdas, and more.
💻
Bash
Complete Bash reference — variables, strings, arrays, conditionals, loops, functions, file tests, I/O redirection, process management, and more.
🦀
Rust
Comprehensive Rust language cheat sheet covering ownership, traits, pattern matching, concurrency, and more.
📝
Markdown
Complete Markdown syntax reference for headings, formatting, links, tables, code blocks, and extensions.
📋
YAML
YAML syntax reference covering scalars, collections, anchors, multi-line strings, and common patterns.
🌐
Curl
Curl command-line reference for HTTP requests, authentication, file transfers, debugging, and common API patterns.
Cron
Cron scheduling reference covering syntax, field values, crontab management, and common schedule patterns.
🖥️
Tmux
Terminal multiplexer for managing multiple sessions, windows, and panes from a single terminal.

📖 Free, searchable command reference. Bookmark this page for quick access.