# grep and awk, <strike>68</strike> 56 bytes

The script:

    echo `grep -o '\w*'|awk '!x[tolower(substr($0,1,1))]++'`

Explanation:

- `grep -o` matches the legal words, printing each on its own line.

- `awk` takes the first letter of each line with `substr`, makes it lowercase, and then increments a hashtable entry with that key.  If the value was unset before the increment, the line is printed.

- `echo ...` turns the lines back into words

I previously tried to create a solution without `awk`, using `uniq`, `sort`, `grep` and `bash` but fell just short.  History in the edits.

Thanks to Dennis for some improvements I missed.