echo foo bar baz | grep -o -w baz 出力はfoo bar baz (および追加の改行)。
期待される出力はbazになります。 -oオプションでは、一致した部分のみが表示されるためです。
Mac OS X 10.7.1を使用しており、grepのバージョンはgrep (GNU grep) 2.5.1です。
承認された回答:
grepを使用することによる回避策があります 単語の最初と最後の空の文字列を照合するための正規表現構文!
# 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'
grepの使用を主張する場合 の-w フラグを立てて、プリコンパイルされたRudix 2010 grepを試してください バイナリ(grep-2.5.4-1.dmg)。
http://rudix.org/packages-ghi.html#grep