0

このコマンドを使用すると

echo jones:Adrian W. Jones/OSD211/555-0123 | sed -e 's=^([^:]*):[^/]*/([^/]*)/.*$=\1:\2='

私が得た: sed: コマンド文字化け: s=^([^:] ):[^/] /([^/] )/. $=\1:\2=

しかし、私がこれを使用すると:

echo jones:Adrian W. Jones/OSD211/555-0123 | sed -e 's=^\([^:]*\):[^/]*/\([^/]*\)/.*$=\1:\2='

私が得たもの: jones:OSD211

(in sedをエスケープする必要があるのはなぜですか?

4

1 に答える 1

1

デフォルトでは、sed は BRE を使用します。BRE では、(リテラル(であり、特別な意味を持たせるためにエスケープする必要があります (グループ化)

ps Gnu sed には-rERE を有効にするオプションがあります。

于 2013-08-14T21:07:17.190 に答える