使用sed命令代替

时间:2013-08-14 20:44:24

标签: regex sed

当我使用此命令时

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

我为什么要逃脱sed中的(

1 个答案:

答案 0 :(得分:1)

默认情况下,sed使用BRE。在BRE中,(是文字(,你必须逃避它以使其具有特殊意义(分组)

P.S。 Gnu sed具有-r选项以启用ERE。