- 论坛徽章:
- 0
|
谢谢各位,这个问题已经解决一半了
问题已经解决了,过程如下
测试文件的内容是这样的
- <c:out value="${test1}"/><c:out value="${test4}"/><c:out value="${test3}"/>
- <c:out value="${test2}"/>
复制代码
使用下面命令
- sed 's/<c:out value="\${\(.*\)}"\/>/\${\1}/g' test
复制代码
输出并不是我期望的
- ${test1}${test4}${test3}
- ${test2}
复制代码
而是
- ${test1}"/><c:out value="${test4}"/><c:out value="${test3}
- ${test2}
复制代码
在一行有多个匹配的时候,直接首尾匹配了,这样得到的不是原来我想要得到的结果.
暂时通过
sed 's/<c ut value="\${\(.\{3,40\}\)}"\/>/\${\1}/g' test.jsp
指定了匹配的内容的长度这个方法,测试了有限的几个文件通过,不知道还有没有更好的办法
最后用下面的方法搞定
匹配数据中不能含有{
- sed 's/<c:out value="\${\([^{]*\)}"\/>/\${\1}/g' test
复制代码
突然发现可以有很多方法,比如不能含有<或>都可以.
[ 本帖最后由 sxybit 于 2006-4-23 20:52 编辑 ] |
|