以下の試みで単語の終わりの区切り文字が認識されないのはなぜ(e)grep
ですかegrep
? (b
)?
$ echo -n "my-pc is beautiful" | egrep 'my-pc\b'
my-pc is beautiful
/home/pkaramol
$ echo -n "my-pc-vol2 is beautiful" | egrep 'my-pc\b'
my-pc-vol2 is beautiful
正常な結果と同じですかgrep
?
答え1
よく認識しているがオプションを使用しない限り、一致する行全体をgrep
印刷します。egrep
-o
-o、--matchのみ
行の一致部分のみを印刷します。
私の考えでは、あなたが望むもの:
$ echo -n "my-pc is beautiful" | egrep -o 'my-pc\b'
my-pc
単語の境界は単語ではなく文字です。単語の文字は次のとおりです[a-zA-Z0-9_]
。したがって、-
単語文字ではありません。