I've been a pipeline junkie for a long time, but i've only recently started to get into awk. The thing i can do with awk but not other tools is to write stateful filters, which accumulate information in associative arrays as they go.
For example, if you want to do uniq without sorting the input, that's:
awk '{ if (!($0 in seen)) print $0; seen[$0] = 1; }'
This works best if the number of unique lines is small, either because the input is small, or because it is highly repetitive. Made-up example, finding all the file extensions used in a directory tree:
find /usr/lib -type f | sed -rn 's/^.*\.([^/]*)$/\1/p' | awk '{ if (!($0 in seen)) print $0; seen[$0] = 1; }'
That script is easily tweaked, eg to uniquify by a part of the string. Say you have a log file formatted like this:
2019-03-03T12:38:16Z hob: turned to 75%
2019-03-03T12:38:17Z frying_pan: moved to hob
2019-03-03T12:38:19Z frying_pan: added butter
2019-03-03T12:38:22Z batter: mixed
2019-03-03T12:38:27Z batter: poured in pan
2019-03-03T12:38:28Z frying_pan: tilted around
2019-03-03T12:39:09Z frying_pan: FLIPPED
2019-03-03T12:39:41Z frying_pan: FLIPPED
2019-03-03T12:39:46Z frying_pan: pancake removed
If you want to see the first entry for each subsystem:
awk '{ if (!($2 in seen)) print $0; seen[$2] = 1; }'
Or the last (although this won't preserve input order):
awk '{ seen[$2] = $0; } END { for (k in seen) print seen[k]; }'
I don't think there's another simple tool in the unix toolkit that lets you do things like this. You could probably do it with sed, but it would involve some nightmarish abuse of the hold space as a database.