sed & awk

sed - the stream editor

$ sed 's/old/new/g' file          # substitute all occurrences
$ sed -i 's/old/new/g' file       # edit file in place
$ sed -n '10,20p' file            # print lines 10-20
$ sed '/^#/d' file                # delete comment lines

awk - the field processor

awk splits each line into fields ($1, $2, … $NF = last). Default separator is whitespace.

$ awk '{print $1, $3}' data.txt          # columns 1 and 3
$ awk -F: '{print $1}' /etc/passwd       # : separator
$ awk '$3 > 1000 {print $1}' file        # conditional
$ df -h | awk 'NR>1 {print $5, $6}'      # skip header
Exam tip: Remember the trio's jobs - grep finds lines, sed edits lines, awk extracts/computes on fields. Almost every exam has at least one question on each.