Recently, I needed to create a one-address-per-line email address list, using only an existing Exchange group mailbox as input.
First we start in Windows…
I opened Outlook and prepared to create a new email and typed in the email group. Once shown, I clicked the “plus” (+) symbol next to the group to expand it. Swipe across the list, and do a CTRL+C to copy them to the clipboard.
Now, to Linux…
Shell into a Linux box, and paste the clipboard contents into a file (for instance, input.txt). The input format will look a bit like this:
Jeremy Pavlov <Jeremy.Pavlov@YourLinuxGuy.com>; Other Guy <Other.Guy@YourLinuxGuy.com>
…and so on…
Now run the following command against your input file:
cat input.txt |tr ";" "\n" |awk '{ print $3 }' | sed s/"<"//g |sed s/">"//g
And you should end up with an output.txt that looks like this:
Jeremy.Pavlov@YourLinuxGuy.com
Other.Guy@YourLinuxGuy.com
…and so on.
This format is now perfect for use in various places, like… oh… for instance… the Subscribe2 plugin in WordPress… …Which is exactly where I use it to keep my internal subscriber list up-to-date.
Enjoy!
🙂
Update: For a comma-delimited list, use this:
cat input.txt |tr ";" "\n"|awk '{ print $3 }'| sed s/"<"//g |sed s/">"//g|tr "\n" ","
…or, if you want it to be just a comma-separated list, you can used this instead:
cat input.txt |tr “;” “\n”|awk ‘{ print $3 }’|sed s/””//g|tr “\n” “,”