これにより、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
ベストアンサー1
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 2010grep
バイナリ(grep-2.5.4-1.dmg)を試してください。