SuperUserでこの質問に回答しました。これは、出力のgrep中に使用される正規表現の種類に関連したものでした。
私が出した答えはこれでした:
tail -f log | grep "some_string.*some_string"
そして、私の答えへの3つのコメントで@ボブはこれを書いた:
.*
貪欲であり、あなたが望むより多くをキャプチャするかもしれません。.*?
通常はより良いです。
そしてこれ、
これ
?
はの修飾子で*
あり、貪欲なデフォルトの代わりに遅延させます。PCREを想定しています。
私はグーグルで検索しましPCRE
たが、私の回答でこれの意味を理解できませんでしたか?
そして最後にこれ、
また、これは正規表現(デフォルトではPOSIX正規表現を実行するgrep)であり、シェルグロブではないことも指摘しておく必要があります。
正規表現とは何か、そしてgrepコマンドでの非常に基本的な使い方だけを知っています。だから、私はそれらの3つのコメントのどれも得ることができず、私はこれらの質問を念頭に置いています:
- 用法の違いは何ですか
.*?
対は.*
? - どちらが良いですか、どのような状況下ですか?例を挙げてください。
また、コメントを理解しておくと役に立ちます。
更新:質問への回答として、正規表現はシェルグロブとどのように異なりますか? @Kusalanandaがコメントでこのリンクを提供しました。
注:必要に応じて、コンテキストを参照するために回答する前に、この質問に対する私の回答を読んでください。