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