Tech Tip: Fun With Gawk
on February 15, 2010
When grep and sed aren't enough, gawk may provide the extra horsepower that you need. The following tip contains a sampling of some of the things one might do with gawk.
Extract the last column from a text file, whitespace-separated:
cat myfile | gawk '{print $NF}'
or:
gawk '{print $NF}' myfile
List counts of files owned by each user in the current directory:
/bin/ls -l | \ gawk 'NR > 1 {counts[$3]++;} END {for (s in counts) { printf(" %-15s : % 5d\n", s, counts[s]);}}' | \ sort
Kill your processes (one use is to kill a hung login if you can remotely log in to the workstation from another machine):
ps -elf | \ gawk -v me="$USER" '$3 == me {print $4}' | \ egrep -v $$ | \ xargs -i@@ kill -9 @@; kill -9 $$