awk正規表現一致エラーが発生しましたか?

awk正規表現一致エラーが発生しましたか?

awkを使用すると、次の動作が見つかりました。

[root@ror6ax3 ~]# grep open * | awk '$2 ~ /opens*/ {print $0}'
install.log:Installing openldap-2.4.23-32.el6_4.1.x86_64
install.log:Installing openssl-1.0.1e-15.el6.x86_64
install.log:Installing openssh-5.3p1-94.el6.x86_64
install.log:Installing openssh-clients-5.3p1-94.el6.x86_64
install.log:Installing openssh-server-5.3p1-94.el6.x86_64
install.log:Installing b43-openfwwf-5.2-4.el6.noarch
[root@ror6ax3 ~]# grep open * | awk '$2 ~ /opens */ {print $0}'
install.log:Installing openssl-1.0.1e-15.el6.x86_64
install.log:Installing openssh-5.3p1-94.el6.x86_64
install.log:Installing openssh-clients-5.3p1-94.el6.x86_64
install.log:Installing openssh-server-5.3p1-94.el6.x86_64

なぜ一致するopens*のですopenldapか?

答え1

*0以上を意味するので、実際には0以上のs文字です。文書を持ってここ、もちろん

たとえば、「h」がない場合は、ph*' applies the* '記号が前のh' and looks for matches of onep'に追加され、その後に任意の数のpが追加されます。h's. This also matches just

あなたの場合、あなたがやっていることは、おそらく「1以上」を意味するようなものをopens*期待することです。オペレーターのための文書を見るopens+++ここ

関連情報