Jussi Hirvi wrote:
> This is not CentOS-specific, hence OT.
> 
> I need a list of all email users on my system (there are hundreds of them).
> The list could be extracted from /etc/aliases and the virtusertable.
> 
> Does anyone know of a script that would do this automatically? It would have
> to 
> - exclude commented-out lines (of course)
and exclude "continuation" lines (lines starting with spaces).
> - exclude duplicates
> - produce a list of usernames (or maybe unresolved email addresses for some
> users) separated by a comma
why comma? isn't LF better (one user per line)?
> 
> I imagine perl would be the way to go. I haven't used perl at all myself.
> 
you could start with something like
getkey()
{
   files=$*
   for file in $files; do
     sed -e '/^[\# 	]/d' -e '/^$/d' $file | \
       awk -F'[:         ]' '{print $1}'
   done
}
getkey /etc/aliases /etc/passwd | sort|uniq > users.local
getkey yourvirtualmap > users.virtual
If you want a list of all valid email addresses, you need to append the 
domains in mydestination to users.local.