[Shell command] grep -w で単語単位の検索を行う
作成日: 2026年10月16日
grep -w を使用すると、指定した文字列が単語として独立している行だけを検索できます。
printf '%s\n' 'cat' 'concatenate' 'cat dog' 'cat_1' 'cat-1' | grep -w 'cat'
実行結果は下記のとおりです。
cat
cat dog
cat-1
-w は --word-regexp と同じ意味で、一致した文字列の前後が行頭・行末、または単語を構成しない文字である場合に一致と判定します。
この例では、cat の前後に英数字や _ がある concatenate と cat_1 は一致しません。一方、空白や - は単語の区切りとして扱われるため、cat dog と cat-1 は一致します。単語を構成する文字の判定はロケールによって異なる場合があります。
なお、-w は行全体の完全一致ではありません。行全体がパターンに一致するものだけを選ぶ場合は grep -x を使用できます。
参考
- GNU grep - Matching Control: https://www.gnu.org/software/grep/manual/html_node/Matching-Control.html