\d は grep の基本式ではサポートされていませんか? [closed] 質問する

\d は grep の基本式ではサポートされていませんか? [closed] 質問する

出力は生成されません。なぜでしょうか?

$ echo 'this 1 2 3' | grep '\d\+'

しかし、これらは次のようになります:

$ echo 'this 1 2 3' | grep '\s\+'
this 1 2 3

$ echo 'this 1 2 3' | grep '\w\+'
this 1 2 3

ベストアンサー1

POSIXで規定されてgrepいるように、基本的な正規表現ですが、\dPerl互換の正規表現の一部です(ペクレ)。

GNU grep を使用している場合は、オプションを使用して PCRE 正規表現の使用を許可できます。それ以外の場合は、の代わりに-PPOSIX 指定の文字クラスを使用できます。[[:digit:]]\d

echo 1 | grep -P '\d'
# output: 1
echo 1 | grep '[[:digit:]]'
# output: 1

おすすめ記事