質問: grepコマンドなどで使う正規表現についてです。 ?の使い方についてなのですが、 本やネットで調べると、**0回または1回の繰り返し**とあります。 +や*と同じく繰り返しのための表現方法だそうです。 ところが、実際に使ってみると`.`ってありますよね・・・任意の1文字のやつです。 これと同じような働きをしているような気がするのですが・・・・ ``` ls ~ | grep -E 'Document?' > Documents ``` という風に、ヒットします。 **0回または1回の繰り返し**ならば、結果はDocumentt, Documentになるのではないのでしょうか?? この?の意味がいまいちわかりません。 `.`と何が違うのでしょうか?? [追記] すでに解決はしました。 ちょっと追記させてください。 今回の件についてDocument?のマッチするパターンがなんなのかが分からなかったで、正規表現を確認出来る方法があれば良かったのでは?と考えています。 そこで、Document?はどのような文字列にマッチするのかを確かめる方法はありますか?? たとえば、echo -e 'Dyueef?' 実際にはできませんが、このようにして正規表現の確認を行うことは可能でしょうか?? echoで正規表現の確認は出来ませんでした。 他のコマンドでもよいので確認する方法を教えてください。
回答: grep はパターンにマッチした「**行**」を印字します。 > > 結果はDocumentt, Documentになるのではないのでしょうか?? > > > Documen, または Document にマッチする「**行が**」印字されます