免费注册 查看新帖 |

Chinaunix

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

vi替换 [复制链接]

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

                在 vi
中替换字符串

vi/vim 中可以使用 :s 命令来替换字符串。
1.         :s/vivian/sky/ 替换当前行第一个 vivian 为
sky
            :s/vivian/sky/g 替换当前行所有 vivian 为 sky
2.         :n,$s/vivian/sky/ 替换第 n 行开始到最后一行中每一行的第一个 vivian 为
sky
            :n,$s/vivian/sky/g 替换第 n 行开始到最后一行中每一行所有 vivian 为
sky
                     (n 为数字,若 n 为 .,表示从当前行开始到最后一行)
3.         
:%s/vivian/sky/(等同于 :g/vivian/s//sky/) 替换每一行的第一个 vivian 为 sky
            
:%s/vivian/sky/g(等同于 :g/vivian/s//sky/g) 替换每一行中所有 vivian 为 sky
4.         可以使用 # 作为分隔符,此时中间出现的 / 不会作为分隔符
            
:s#vivian/#sky/# 替换当前行第一个 vivian/ 为 sky/
5.         删除文本中的^M
            
问题描述:对于换行,window下用回车换行(0A0D)来表示,[color="#000000"]linux下是回车(0A)来表示。这样,将window上的文件拷到unix上用时,总会有个^M.请写个用在unix下的过滤windows文件的换行符(0D)的shell或c程序。
  • 使用命令:cat filename1 | tr -d “^V^M” > newfile;
  • 使用命令:sed -e “s/^V^M//” filename >
    outputfilename。需要注意的是在1、2两种方法中,^V和^M指的是Ctrl+V和Ctrl+M。你必须要手工进行输入,而不是粘贴。
  • 在vi中处理:首先使用vi打开文件,然后按ESC键,接着输入命令:%s/^V^M//。
  • :%s/^M$//g

             如果上述方法无用,则正确的解决办法是:
  • tr  -d   "\r"        dest
  • tr  -d   "\015"  dest
  • strings              A>B

6.        其它
利用 :s 命令可以实现字符串的替换。具体的用法包括:
:s/str1/str2/       用字符串
str2 替换行中首次出现的字符串 str1
:s/str1/str2/g      用字符串 str2 替换行中所有出现的字符串
str1
:.,$ s/str1/str2/g  用字符串 str2 替换正文当前行到末尾所有出现的字符串 str1
:1,$
s/str1/str2/g  用字符串 str2 替换正文中所有出现的字符串 str1
:g/str1/s//str2/g   
功能同上
从上述替换命令可以看到:g 放在命令末尾,表示对搜索字符串的每次出现进行替换;不加 g,表示只对搜索
字符串的首次出现进行替换;g
放在命令开头,表示对正文中所有包含搜索字符串的行进行替换操作。
               
               
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/85848/showart_1810351.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP