これは出力を生成しません。どうして?
$ 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
2
それらのどれも私(Solaris)のために動作しません。
—
スプラフ
私もダメ。(シグウィン)持つつもりでした
—
Eric Wilson
\+
か?どういう意味ですか?
はい、私はbashを使用してUbuntu 10.04を使用しています。grepのBREでは、一部の文字をエスケープする必要があります。man grepで「基本正規表現と拡張正規表現」を試してください。
—
Ankur Agarwal 2011
@FarmBoy:
—
Daenyth、2011
+
正規表現では、「前のトークンの1つ以上」を意味します。この場合、それはエスケープされていますgrep
。これは、のデフォルトの正規表現エンジンで必要な構文だからです。
@FarmBoy:
—
キーストンプソン
+
を使用している場合はエスケープする必要がありますgrep
。を使用している場合は使用egrep
しません。 (少なくともGNUバージョンの場合)grep -E
と同等egrep
です。