linux sed命令中正则表达式解析

sed‘s/\(.*\)old\(.*old\)/\1new\2/’请问这条表达式中的\(.*\)old\(.*old\)/\1new\2怎么理解... sed ‘s/\(.*\)old\(.*old\)/\1new\2/’
请问这条表达式中的\(.*\)old\(.*old\)/\1new\2怎么理解
展开
 我来答
百度网友f1edbb8
2013-12-30 · TA获得超过1048个赞
知道小有建树答主
回答量:1159
采纳率:0%
帮助的人:515万
展开全部
例如字符串是12345old67890old

那么上面语句分解如下:
s/ 是启用替换

替换内容如下:
\(.*\) 对应12345 并标记为\1
old 对应old
\(.*old\) 对应67890old 并标记为\2
替换内容如上:

那么替换后的格式如下:
/\1new\2 对应 12345new67890old
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
爱交朋友啊
2013-12-20
知道答主
回答量:22
采纳率:0%
帮助的人:15.7万
展开全部
\( 和\)是转义字符,表达(). \1 \2表示提取序号。\1提取(.*) \2提取(.*old) (.*)old(.*old)/\1new\2/的作用就是把old替换成new,只不过要满足??old??old条件的。比如 echo "aaaoldaaaold" | sed ‘s/\(.*\)old\(.*old\)/\1new\2/’ 会输出aaanewaaaold
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
IT大话
2013-12-20 · TA获得超过105个赞
知道答主
回答量:79
采纳率:100%
帮助的人:55.2万
展开全部
后面的数字1等于前面的\(.*\)
后面的数字2等于前面的\(.*old\)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式