例えば以下のような内容のファイル(test.txt)から「ALL : ***.***.***.***」の行だけ検索したいとします。
ALL : ***.***.***.*** sshd : ALL
この場合「ALL」だけをパターンとしてgrepすると2行目もヒットしてしまいます。
そこで「ALL :」をパターンとしてgrepすることで1行目だけを検索することとします。
ここで、単純に「ALL」と「:」の間がスペース1つ分ならいいのですが、
場合によってはスペースが複数だったり、tabが使われていたりするかもしれません。
そのような場合にもちゃんとヒットするように検索するには、正規表現の「\s」を使うと便利です。
「\s」は空白文字を表す正規表現です。空白文字とは半角スペースとtab文字のことを指します。
「\s*」とすることで任意幅の空白を表すことができます。
上記の例の場合は、以下のようにgrepすることで「ALL」と「:」の間にどんな空白が入っていてもヒットさせることができます。
grep "ALL\s*:" test.txt