0
'\'を使うべきときは非常に混乱しています。エスケープのためにバックスラッシュ ''を使うべきでないことについて混乱する
は例を検討:
(1)
$ grep -Eh '^(bz|gz|zip)' filenames.txt
それはBZ、GZ、またはzipのいずれかで始まる結果を一致します。
(2)
$ echo "(555) 123-4567" | grep -E '^\(?[0-9][0-9][0-9]\)? [0-9] [0-9][0-9]$'
出力:例では(555)123-4567
- (1)、なぜそれが(括弧をエスケープするために '\' を必要としません。 )
- 例(2)では、エスケープ()に '\'が必要なのはなぜですか?
私はUbuntuディストリビューションを使用しています。
grepの '-E'オプションは実際にエスケープする必要があるものを変更することに注意してください。'(...) 'はリテラルな括弧にマッチし、' \(... \) 'はグループですが、 '-E'は意味が逆になります。 –
@GordonDavisson:それは本当です。 –