我只是想知道为什么不起作用:
原创
red wagon logon
Blue wagon logon
Black wagon logon
red wagon logon
red wagon logon
red walking 43 logon
red wagon logon 89
Pink wagon logon 110
red wagon logon
red wagon logon
green wagon logon此命令运行良好:sed 's:wa\(gon\):poly\1:' wagon.txt
结果
red polygon logon
Blue polygon logon
Black polygon logon
red polygon logon
red polygon logon
red walking 43 logon
red polygon logon 89
Pink polygon logon 110
red polygon logon
red polygon logon
green polygon logon现在我想举个例子,wapoly,但它是打印的,polywa,为什么?
命令:sed 's:\(wa\)gon:poly\1:' wagon.txt
red polywa logon
Blue polywa logon
Black polywa logon
red polywa logon
red polywa logon
red walking 43 logon
red polywa logon 89
Pink polywa logon 110
red polywa logon
red polywa logon
green polywa logon谢谢
发布于 2017-02-08 19:27:04
将捕获组从gon更改为wa,并将替换部分构造为包含wa的\1,并附加poly。
sed 's:\(wa\)gon:\1poly:' file
red wapoly logon
Blue wapoly logon
Black wapoly logon
red wapoly logon
red wapoly logon
red walking 43 logon
red wapoly logon 89
Pink wapoly logon 110
red wapoly logon
red wapoly logon
green wapoly logon\1、\2是替换部分中形成regex的捕获组,例如,在行s:\(wa\)gon:\1poly:中,在\1中捕获部件wa,以后可以作为输出wapoly的\1poly在替换部分中使用。
为了用同样的例子来演示\2的用法,s:\(wa\)g\(on\):\1poly\2:,现在被捕获的组1,表示为\1 has wa,捕获的组2 \2有on,现在构造的string \1poly\2将是wapolyon,
sed 's:\(wa\)g\(on\):\1poly\2:' file
red wapolyon logon
Blue wapolyon logon
Black wapolyon logon
red wapolyon logon
red wapolyon logon
red walking 43 logon
red wapolyon logon 89
Pink wapolyon logon 110
red wapolyon logon
red wapolyon logon
green wapolyon logonhttps://stackoverflow.com/questions/42121787
复制相似问题