私はWindowsを使用していますが、私の質問はまだここに正しく置かれていると思います。
C:\Users\User>grep --version
GNU grep 2.6.3
C:\Users\User>sed --version
GNU sed version 4.2.1
私は次のように動作していることに気付きました(出力here
):
echo here | grep -E "\w+"
echo here | grep -E "[her]+"
しかし、これは機能しません(何も出力しません):
echo here | grep -E "[\w]+"
これは再び行います(出力here
):
echo here | grep -P "[\w]+"
だから[\w]
、Perlの正規表現に固有の何かだと思います。あれは正しいですか?
それでは、話しましょうsed
。これは動作します(出力gone
):
echo here | sed -r "s/\w+/gone/"
echo here | sed -r "s/[her]+/gone/"
繰り返しますが、これは(出力here
)しません:
echo here | sed -r "s/[\w]+/gone/"
さて、どのようにしてsedのPerl正規表現を有効にできますか?方法はありますか?
[_[:alnum:]]
[\w/]
([_[:alnum:]/]
その場合)のように拡張できる素晴らしい回避策です。