[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 を使用できます。

参考

Shell command grep