News for hackers. Stuff that matters.
Re:The Unix-Haters Handbook (1994) [pdf] by aarch64 on Monday March 18, 2019 @11:05AM (#19421637)
One of these "apposite observations" is in the section on pipes (p. 199 of link).

The authors use this convoluted bash script to show that pipes are best suited for simple hacks and might fail mysteriously under certain circumstances:

  egrep '^To:|^Cc:' /var/spool/mail/$USER | \
  cut -c5- | \
  awk '{ for (i = 1; i <= NF; i++) print $i }' | \
  sed 's/,//g' | grep -v $USER | sort | uniq
Although this is hard to read, it can be simplified from 7 commands to 5:

  awk '/^To:|^Cc:/ { for (i = 2; i <= NF; i++) print $i }' /var/mail/$USER | \
  sed 's/,//g' | grep -v [email protected] | sort | uniq
By folding the egrep pattern matching into awk as it is supposed to be used and starting from the second field instead of removing the first four characters with cut, this script is both easier to read and fewer lines long.

By inverse grepping for [email protected], there will not be mysterious behavior if $USER is in another person's email address.

There are no comments on this comment yet.