#!/bin/sh header= while : do case $# in 0) break ;; esac case "$1" in -b) header=Bcc ;; -c) header=Cc ;; -*) echo >&2 "Unknown option $1" exit 1 ;; *) break ;; esac shift done case $# in 0) match='*' ;; 1) match="*$1*"; shift ;; esac for p do match="$match|*$p*" done { iis= iis2=', ' while read address name do case "$address" in '#'*) continue ;; esac case "$name" in $match) ;; *) continue ;; esac item="$name <$address>" if test -z "$header" then echo "$iis$item" elif test -z "$iis" then printf "$header: $item" iis="$iis2" else printf "$iis$item" fi done if test -n "$header" then printf '\n' fi } <<\EOF linux-kernel@vger.kernel.org Linux Kernel info@lwn.net LWN.NET ask@perl.org Perl5-porters at perl EOF