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.