sed -e 's|.* -> ../../\(.*\)$|\1|'是什么意思?
1个回答
展开全部
-e选项,这里没什么作用,可以不写(可以查看sed帮助-e的介绍)
引号里面是sed的替换命令,常见的是 s/正则表达搜索/替换为/
将“替换为”字串替换“正则表达搜索”到的字符串。这里分隔符改为了竖线 |
正则搜索项:
.* -> ../../\(.*\)$
.*——任意字符
-> ——原样匹配,->并且前后有一个空格
../——两个任意字符,加上一个/字符
../——同上
\(.*\)——匹配任意字符,并且放在了捕获括号中
$——字符串结束位置
替换为:\1——引用前面正则表达式中第一个捕获括号里面的内容
整个意思是找到能匹配正则的内容,并用后面的一部分替换整个匹配,示例:
上面的示例得到了整个字符串最后面的一部分内容。
追问
-> 原样匹配是说就是直接用,没有什么其他的意义吗
追答
在这里,->没有特殊意义,横线在中括号[ ]中,可以表示范围,比如0-9
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询