I have embraced the Unix philosophy of small tools done well. It started when I resolved to use Bash to solve weekly challenges at work (another neat idea, more on that another time!). Here’s some neat little tricks I have learned over time :
sort -n
: sort numerically
sort -k 1
: sort by a field
sort -t "/" -k 3
: sort by the third field, split by “/”
uniq -c
: uniq and list the counts. Combine with sort -n
for great success
cut -d " " -f 2,3
: The cut utility is so useful - gets data out from tables for you quickly
xargs -I {} echo {}.txt
: Use xargs to construct these arguments for echo to run
xargs -t echo
: Print out the command before running it.
xargs -n1 echo
: Run echo once per input
grep -E "(a|b|c)"
: grep with extended regexp
grep -v pattern
: show lines not matching the pattern
grep -o pattern
: show only the matching part
Combine the above commands with pipe (|
) and one can achieve a lot !