vim查找/替换字符串【转】

转自:http://www.cnblogs.com/GODYCA/archive/2013/02/22/2922840.html

vi/vim 中可以使用 :s 命令来替换字符串。该命令有很多种不同细节使用方法,可以实现复杂的功能,记录几种在此,方便以后查询。 
  
  :s/vivian/sky/ 替换当前行第一个 vivian 为 sky 
  
  :s/vivian/sky/g 替换当前行所有 vivian 为 sky 
  
  :n,$s/vivian/sky/ 替换第 n 行开始到最后一行中每一行的第一个 vivian 为 sky 
  
  :n,$s/vivian/sky/g 替换第 n 行开始到最后一行中每一行所有 vivian 为 sky 
  
  n 为数字,若 n 为 .,表示从当前行开始到最后一行 
  
  :%s/vivian/sky/(等同于 :g/vivian/s//sky/) 替换每一行的第一个 vivian 为 sky 
  
  :%s/vivian/sky/g(等同于 :g/vivian/s//sky/g) 替换每一行中所有 vivian 为 sky 
  
  可以使用 # 作为分隔符,此时中间出现的 / 不会作为分隔符 
  
  :s#vivian/#sky/# 替换当前行第一个 vivian/ 为 sky/ 
  
  :%s+/oradata/apras/+/user01/apras1+ (使用+ 来 替换 / ): /oradata/apras/替换成/user01/apras1/ 

5. 删除文本中的^M 
  
  问题描述:对于换行,window下用回车换行(0A0D)来表示,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 
  
  如果上述方法无用,则正确的解决办法是: [Page]
  
  。 tr -d \"\\r\" < src >dest 
  
  。 tr -d \"\\015\" dest 
  
  。 strings A>B 
      6. 替换确认
         我们有很多时候会需要某个字符(串)在文章中某些位置出现时被替换,而其它位置不被替换的有选择的操作,这就需要用户来进行确认,vi的查找替换同样支持
       例如
      :s/vivian/sky/g 替换当前行所有 vivian 为 sky 
      在命令后面加上一个字母c就可以实现,即:s/vivian/sky/gc
      顾名思意,c是confirm的缩写
  
  7. 其它 
  
  利用 :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 放在命令开头,表示对正文中所有包含搜索字符串的行进行替换操作

时间: 2024-09-28 15:03:09

vim查找/替换字符串【转】的相关文章

【不积跬步,无以致千里】VIM查找替换归纳总结zz

http://spaces.msn.com/dingy/blog/cns!2F24B9E66A542581!327.entry VIM中常用的替换模式总结. 1,简单替换表达式 替换命令可以在全文中用一个单词替换另一个单词: :%s/four/4/g   "%" 范围前缀表示在所有行中执行替换.最后的 "g" 标记表示替换行中的所有匹配点.如果仅仅对当前行进行操作,那么只要去掉%即可   如果你有一个象 "thirtyfour" 这样的单词,上面

又一不错的应用-正则来查找替换字符串_正则表达式

以下这段代码截取自某一网页源码: onClick="MM_openBrWindow('../photo/nlife/sfc/pages/O'Connors_jpg.htm','RD','width=456,height=368')" onClick="MM_openBrWindow('../photo/nlife/sfc/pages/Trad'r Sam_jpg.htm','RD','width=456,height=368')" onClick="MM_

又一不错的应用-正则来查找替换字符串

以下这段代码截取自某一网页源码: onClick="MM_openBrWindow('../photo/nlife/sfc/pages/O'Connors_jpg.htm','RD','width=456,height=368')" onClick="MM_openBrWindow('../photo/nlife/sfc/pages/Trad'r Sam_jpg.htm','RD','width=456,height=368')" onClick="MM_

linux中Vim查找和替换的方法

总有人问我 Vim 中能不能查找,当然能!而且是超级强的查找! 这篇文章来详细介绍 Vim 中查找相关的设置和使用方法. 包括查找与替换.查找光标所在词.高亮前景/背景色.切换高亮状态.大小写敏感查找等. 查找 在normal模式下按下/即可进入查找模式,输入要查找的字符串并按下回车. Vim会跳转到第一个匹配.按下n查找下一个,按下N查找上一个. Vim查找支持正则表达式,例如/vim$匹配行尾的"vim". 需要查找特殊字符需要转义,例如/vim\$匹配"vim$&quo

LINUX vim替换字符串指令

  vi/vim 中可以使用 :s 命令来替换字符串.以前只会使用一种格式来全文替换,今天发现该命令有很多种写法(vi 真是强大啊,还有很多需要学习),记录几种在此,方便以后查询. :s/vivian/sky/ 替换当前行第一个 vivian 为 sky :s/vivian/sky/g 替换当前行所有 vivian 为 sky :n,$s/vivian/sky/ 替换第 n 行开始到最后一行中每一行的第一个 vivian 为 sky :n,$s/vivian/sky/g 替换第 n 行开始到最后

linux中批量查找替换文本内容例子

  .批量查找某个目下文件的包含的内容,例如: # grep -rn "要找查找的文本" ./ 2.批量查找并替换文件内容. # sed -i "s/要找查找的文本/替换后的文本/g" `grep -rl "要找查找的文本" ./` sed的其他用法如下: 1.删除行首空格 sed 's/^[ ]*//g' filename sed 's/^ *//g' filename sed 's/^[[:space:]]*//g' filename 2.行

linux中VI使用常用命令 查找 替换

首先进入vi的方法:如 vi /etc/sysconfig/iptables 按insert就能切换到插入模式了,如果再按一次,状态就变成replace,如果需要退出等操作,按下esc. :w #保存而不退出 :q #结束编辑 :q! #不保存直接退出 :wq #保存并退出 :x #保存并退出 PageUp和PageDown按钮可以上下翻页,Home到行最前,End到行最后. 在Esc下还可以查找,替换. 查找: /hello #向下查找hello ?hello #向上查找hello 按n可以查

vim编辑器匹配字符串出现多少次

vim结合正则表达式可以实现复杂的功能,如 vim中常用的查找替换 %s/匹配字符串/替换字符串/g 若只想匹配字符串的次数: %s/字符串/&/gn n,代表只报告匹配的个数,而不进行实际的替换. 如果只想当前行内的出现该字符串次数呢? :s/字符串/&/gn  如果在m和n行之间查找 字符串 出现的次数 :m,ns/字符串/&/gn  如果每行的bbb不超过2个,简单地可以这样: :%s/(bbb.*)bbb/1/ 这条命令比较好理解,在普通vi下应该也可以用.但由于*的贪婪性

Excel中查找替换怎么使用

  Excel中查找替换怎么使用         一.快捷方式 Ctrl+F打开"查找和替换"对话框 Ctrl+H打开"查找和替换"对话框. 二.查找范围 查找范围有:全局和局部查找. 如果查找是在整个工作表进行,随意单击任意单元格进行查找.如果是局部查找,首先确定查找范围,比如只在A列查找,可以先选中A列,然后再打开"查找和替换"对话框. 按行按列查找是指优先级. 假如光标当前在A1单元格,A1,A2,B1单元格都包含要查找的数据时,查找结果B