Wenn ich echo foo bar baz | grep -o -w baz die Ausgabe ist foo bar baz (und einem zusätzlichen Zeilenumbruch).
 Die erwartete Ausgabe wäre baz da die Option -o nur den übereinstimmenden Teil anzeigen sollte.
 Ich verwende Mac OS X 10.7.1 und die grep-Version ist grep (GNU grep) 2.5.1 
Akzeptierte Antwort:
 Es gibt eine Problemumgehung durch die Verwendung von grep Regex-Syntax zum Abgleichen der leeren Zeichenfolge am Anfang und am Ende eines Wortes!
# grep regex syntax for matching words only
man grep | less -p '\<'
# POSIX 1003.2 regular expression syntax for matching words only
# should work for sed, ed, ...
man re_format | less -p '\[\[:<:\]\]'
echo 'foo bar baz' | egrep -o '\<baz\>'
echo 'foo bar baz' | sed -n '/.*[[:<:]]\(baz\)[[:>:]].*/s//\1/p'
 
 Wenn Sie darauf bestehen, grep zu verwenden ist -w Flag, versuchen Sie es mit dem vorkompilierten Rudix 2010 grep binär (grep-2.5.4-1.dmg).
http://rudix.org/packages-ghi.html#grep