免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: shihyu
打印 上一主题 下一主题

[文本处理] sed 替换字符串 [复制链接]

论坛徽章:
54
2015亚冠之德黑兰石油
日期:2015-07-07 13:00:1615-16赛季CBA联赛之深圳
日期:2016-03-31 09:03:5415-16赛季CBA联赛之辽宁
日期:2016-05-09 20:38:15程序设计版块每日发帖之星
日期:2016-05-12 06:20:0015-16赛季CBA联赛之四川
日期:2016-05-13 15:19:4715-16赛季CBA联赛之福建
日期:2016-05-15 20:24:34每日论坛发贴之星
日期:2016-05-16 06:20:0015-16赛季CBA联赛之吉林
日期:2016-05-26 11:49:4715-16赛季CBA联赛之广东
日期:2016-05-26 13:49:18极客徽章
日期:2016-12-07 14:05:2315-16赛季CBA联赛之广夏
日期:2016-12-20 17:33:532017金鸡报晓
日期:2017-01-10 15:19:56
11 [报告]
发表于 2015-09-06 10:51 |只看该作者
回复 9# sunzhiguolu
  1. [root@test /tmp]$ echo "... image:: /_static/... image:: /birthday_party.bmp" | sed 's@.*:: \(.*\)@\1@'
  2. /birthday_party.bmp
复制代码
正则贪婪

论坛徽章:
307
程序设计版块每周发帖之星
日期:2016-04-08 00:41:33操作系统版块每日发帖之星
日期:2015-09-02 06:20:00每日论坛发贴之星
日期:2015-09-02 06:20:00程序设计版块每日发帖之星
日期:2015-09-04 06:20:00每日论坛发贴之星
日期:2015-09-04 06:20:00每周论坛发贴之星
日期:2015-09-06 22:22:00程序设计版块每日发帖之星
日期:2015-09-09 06:20:00程序设计版块每日发帖之星
日期:2015-09-19 06:20:00程序设计版块每日发帖之星
日期:2015-09-20 06:20:00每日论坛发贴之星
日期:2015-09-20 06:20:00程序设计版块每日发帖之星
日期:2015-09-22 06:20:00程序设计版块每日发帖之星
日期:2015-09-24 06:20:00
12 [报告]
发表于 2015-09-06 11:17 |只看该作者
小弟对于此问题有一个不成熟的解决方法,但也是基于特定格式下字符串才能奏效. 并不能应对"产生的变化",也许这一点是很多人或者说大家感到不舒服的地方... 当然,我自己也包括其中. 如果您浏览到此帖内容,还请您给小弟指出问题所在或者指点思路. 小弟在此先谢过.  
示例代码如下:
  1. sed -r '
  2. /\bimage:: /{
  3. s/^.*\bimage:: (.*)$/![](\1)/1
  4. }' a
复制代码
以上的匹配替换同样是针对"特定字符串"来定位捕获组期望存储的内容,对于上面的问题只能做到有针对性的解决特定的问题. 例如:假设在文本行中有如下字符串,我的 s 操作符模式部分同样不能为捕获组正确的识别它起始存储的位置: 字符串如下:
... image:: ... image:: /_static/AD/help_me.jpg

原因是在路径前面的字串部分出现了两次 "image:: ",导致模式在进行匹配时错误的命中,也就影响到后面捕获组捕获的路径内容.

如果您找到问题所在,请您给小弟指点或是指出解决问题的思路. 在此我先向各位朋友道谢,多谢多谢...

论坛徽章:
307
程序设计版块每周发帖之星
日期:2016-04-08 00:41:33操作系统版块每日发帖之星
日期:2015-09-02 06:20:00每日论坛发贴之星
日期:2015-09-02 06:20:00程序设计版块每日发帖之星
日期:2015-09-04 06:20:00每日论坛发贴之星
日期:2015-09-04 06:20:00每周论坛发贴之星
日期:2015-09-06 22:22:00程序设计版块每日发帖之星
日期:2015-09-09 06:20:00程序设计版块每日发帖之星
日期:2015-09-19 06:20:00程序设计版块每日发帖之星
日期:2015-09-20 06:20:00每日论坛发贴之星
日期:2015-09-20 06:20:00程序设计版块每日发帖之星
日期:2015-09-22 06:20:00程序设计版块每日发帖之星
日期:2015-09-24 06:20:00
13 [报告]
发表于 2015-09-06 13:27 |只看该作者
回复 11# haooooaaa
再次看到您的回复,首先一点:非常感谢您的无私帮助及对知识的分享精神. 的确,正如您在回帖中提到的 "正则贪婪",的确可以解决在路径中出现的 " image:: " 的问题,据您提醒写出如下所示代码:
  1. s/^.*?\bimage:: (.*)$/![](\1)/
复制代码
但是依旧是按照特字符串的格式写出符合某种特定要求的表达式,这种方式好像我上面提到的那样依旧不能应对变化,如我上一次回帖中提到的那个问题. 还请大神给予指点...  小弟拜谢...

   

论坛徽章:
307
程序设计版块每周发帖之星
日期:2016-04-08 00:41:33操作系统版块每日发帖之星
日期:2015-09-02 06:20:00每日论坛发贴之星
日期:2015-09-02 06:20:00程序设计版块每日发帖之星
日期:2015-09-04 06:20:00每日论坛发贴之星
日期:2015-09-04 06:20:00每周论坛发贴之星
日期:2015-09-06 22:22:00程序设计版块每日发帖之星
日期:2015-09-09 06:20:00程序设计版块每日发帖之星
日期:2015-09-19 06:20:00程序设计版块每日发帖之星
日期:2015-09-20 06:20:00每日论坛发贴之星
日期:2015-09-20 06:20:00程序设计版块每日发帖之星
日期:2015-09-22 06:20:00程序设计版块每日发帖之星
日期:2015-09-24 06:20:00
14 [报告]
发表于 2015-09-06 13:37 |只看该作者
本帖最后由 sunzhiguolu 于 2015-09-06 13:38 编辑

如果哪位热心朋友找到问题所在,请您给予帮助或提供一个解决问题的思路. 在此小弟先谢过大家.

论坛徽章:
11
程序设计版块每日发帖之星
日期:2015-09-09 06:20:00CU十四周年纪念徽章
日期:2016-05-16 11:11:112016科比退役纪念章
日期:2016-05-04 17:16:57程序设计版块每日发帖之星
日期:2016-02-20 06:20:00程序设计版块每周发帖之星
日期:2015-11-06 19:30:58程序设计版块每日发帖之星
日期:2015-09-12 06:20:00程序设计版块每日发帖之星
日期:2015-09-11 06:20:00每日论坛发贴之星
日期:2015-09-10 06:20:00程序设计版块每日发帖之星
日期:2015-09-10 06:20:00每日论坛发贴之星
日期:2015-09-09 06:20:0015-16赛季CBA联赛之四川
日期:2016-12-15 15:52:10
15 [报告]
发表于 2015-09-06 14:06 |只看该作者
echo ".. image:: /_static/SimpleFactory.jpg"| sed 's/.. image:: \(.*\)/![](\1)/'
![](/_static/SimpleFactory.jpg)
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP