免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5262 | 回复: 4
打印 上一主题 下一主题

vim怎么替换以3f开头h结尾的单词? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-11-21 14:05 |只看该作者 |倒序浏览


3f1h
3f2h

替换成
4f1h
4f2h

就是替换掉指字符开头及结尾的单词。

直接
:%s/3f/4f/g
怕连

3fkk
不是以h结点的单词也被替换了

论坛徽章:
0
2 [报告]
发表于 2011-11-21 15:41 |只看该作者
回复 1# internetmimang


    sed

    或替换的行数不多    可以    %s/3f/4f/c      c 逐个结果提示你  y/n  替不替换

论坛徽章:
1
天秤座
日期:2013-10-23 13:20:42
3 [报告]
发表于 2011-11-21 18:49 |只看该作者
[test@proxy ~]$ cat 2.txt
3f1h
3f2h
3fkk
[test@proxy ~]$ cat 2.txt|sed '/^3f.*h$/s/^3f/4f/'
4f1h
4f2h
3fkk

论坛徽章:
19
CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-09-18 15:15:15CU大牛徽章
日期:2013-05-20 10:46:44CU大牛徽章
日期:2013-05-20 10:46:38CU大牛徽章
日期:2013-05-20 10:46:31CU大牛徽章
日期:2013-05-20 10:46:25CU大牛徽章
日期:2013-05-20 10:46:18CU大牛徽章
日期:2013-04-17 11:19:51CU大牛徽章
日期:2013-04-17 11:19:42CU大牛徽章
日期:2013-04-17 11:19:37CU大牛徽章
日期:2013-04-17 11:19:32CU大牛徽章
日期:2013-04-17 11:19:28
4 [报告]
发表于 2011-11-21 21:02 |只看该作者
回复 1# internetmimang
  1. 看正则表达式
  2. %s/\<3f\(.\)h\>/4f\1h/g
  3. \<匹配词首
  4. \( 和\)保留其中匹配的内容
  5. .匹配一个字符,如果是多个用*
  6. \>匹配词尾
  7. \1就是之前\(\)中的内容
复制代码

论坛徽章:
0
5 [报告]
发表于 2011-11-21 21:49 |只看该作者
1,:/4f[^\ ]*h/,%s//要替换的东西/g

上面匹配4f跟h之间无空格状态,且4f跟h可以在任何字符串中间

2,:/^4f[^\ ]*h$/,%s//要替换的东西/g

上面匹配4f跟h之间无空格状态,且4f在开始h在结尾(结尾处不可有空格等任意字符)

上面的逗号都为英文半角字符,且可以省略!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP