Linux ボックスで次の grep を実行すると、次のようになります。
$ ps -ef | grep bash
root 2286 1 0 Jun06 ? 00:03:15 /bin/bash /etc/init.d/zxy100wd
wmiller 6436 6429 0 Jun06 pts/0 00:00:01 bash
wmiller 10707 6429 0 Jun07 pts/1 00:00:00 bash
wmiller 10795 6429 0 Jun07 pts/2 00:00:00 bash
wmiller 16220 6436 0 06:55 pts/0 00:00:00 grep --color=auto bash
「bash」という単語が grep の引数に含まれているため、最後の行は grep 自体を報告していることに注意してください。
しかし、代わりに「bash」で任意の文字を [] で囲むと、次のようになります。
$ ps -ef | grep ba[s]h
root 2286 1 0 Jun06 ? 00:03:15 /bin/bash /etc/init.d/zxy100wd
wmiller 6436 6429 0 Jun06 pts/0 00:00:01 bash
wmiller 10707 6429 0 Jun07 pts/1 00:00:00 bash
wmiller 10795 6429 0 Jun07 pts/2 00:00:00 bash
今回はgrepの情報なし!
では、検索語 (つまり正規表現) 内の文字を角かっこで囲むと、grep が自分自身をここに報告しないのはなぜでしょうか? [s] は、「文字「s」で構成される [] で囲まれたセットの任意の文字」を意味していました。