`
yidongkaifa
  • 浏览: 4062826 次
文章分类
社区版块
存档分类
最新评论

在VI中替换字符串

 
阅读更多

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 行开始到最后一行中每一行所有 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/
  * ************************************
  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)来表示,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 "5" 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 放在命令开头,表示对正文中所有包含搜索字符串的行进行替换操作。

http://bbs.chinaunix.net/thread-2045191-1-1.html

分享到:
评论

相关推荐

    vi中实现字符串的替换

    怎样高速有效无错地实现的字符串替换,修改代码中的bug。

    Linux vi替换字符串-lhrbest-ITPUB博客.mhtml

    Linux vi替换字符串-lhrbest-ITPUB博客.mhtmlLinux vi替换字符串-lhrbest-ITPUB博客.mhtml

    LabVIEW的字符串操作函数

     字符串操作函数包括计算字符串长度、连接字符串、搜索替换字符串等操作,表详细列出了字符串操作函数及其功能。  字符串操作函数子选板中还包含一个Express VI——创建文本,对文本和参数化输入进行组合,创建...

    EDA/PLD中的LabVIEW的字符串操作函数

     字符串操作函数包括计算字符串长度、连接字符串、搜索替换字符串等操作,表详细列出了字符串操作函数及其功能。  字符串操作函数子选板中还包含一个Express VI——创建文本,对文本和参数化输入进行组合,创建...

    labview学习资料-labview初级例程源码(76个).zip

    判断空字符串.vi 判断空数组.vi 判断范围强制类型转换.vi 单选按钮.vi 基本信息.ctl 复合运算字符串加密.vi 复合运算符用法举例.vi 多态VI.vi 字符判断.vi 布尔.vi 布尔运算.vi 抽取数组.vi 控件 1.ctl 控件 2.ctl ...

    linux Vi操作测试内容

    8. 将50到100行之间的小写字符串man改为大写MAN字串,挨个确认是否替换; 9. 全部反悔;(复原前面的修改); 10. 复制60到73行之间的内容,黏贴到最后一行; 11. 将21到42之间以#开头的行删除; 12. 将现在的文件...

    linux vi 常用命令

    取代字符串 1,$s/string/replae/g:在last line mode输入“1,$s/string/replace/g”会将全文的string字符串取代为replace字符串, 其中1,$s就是指搜寻区间为文章从头至尾的意思,g则是表示全部取代不必确认。...

    vi技巧大全命令大全

    d(delete)、c(change)和y(yank)这一类的指令在vi 中的指令格式为: operation+scope=command (运算子)(范围) 运算子: d 删除指令。删除资料,但会将删除资料复制到记忆体缓冲区。 y 将资料(字组、行列、...

    linux系统vim实验报告.doc

    关于文本编辑器 vim 的使用 【注】里面的内容和自己跟着敲敲,文件名字换成自己的,可以套用我的模板和前言结论,代码最好...3.字符串替换,行的复制,移动,删除。 4.文本的查找,撤销与重复。 【注】原创文章,请勿转载

    正则表达式之道.doc

    绝大部分的例子是基于vi中的文本替换命令和grep文件搜索命令来书写的,不过它们都是比较典型的例子,其中的概念可以在sed、awk、perl和其他支持正则表达式的编程语言中使用。你可以看看不同工具中的正则表达式这一节...

    LABVIEW虚拟仪器从入门到测控应用130例.(电子工业.李江全.任玲.廖结安.温宝琴)

    实例21 搜索替换字符串 实例22 格式化日期/时间字符串 实例23 格式化写入字符串 实例24 搜索/拆分字符串 实例25 选行并添加至字符串 实例26 匹配字符串 实例27 匹配真/假字符串 实例28 组合框 第4章 数组数据 实例...

    vim编辑器中熟练掌握正则表示法

    正则表示法透过一些特殊符号的辅助,可以让使用者轻易完成查找/删除/替换某些特定字符串的工作。 举例来说,如果只想找到MYweb(前面两个为大写字母)或 Myweb(仅有一个大写字母)字符串(MYWEB、myweb等都不符合...

    LINUX and SHELL 自学总结

    2. #SED替换字符串代码 6 四、多行文件写入或注释 7 1. 多行文件写入 7 2. 多行注释方法 7 五、SHELL其它命令总结 7 1. #AWK命令用法 7 2. 搜索文件夹或文件命令 7 3. RPM解包和TAR解包 7 #rpm 强制安装 7 4. 统计某...

    入门学习Linux常用必会60个命令实例详解doc/txt

    -n:一般而言,mount挂上后会在/etc/mtab中写入一笔资料,在系统中没有可写入文件系统的情况下,可以用这个选项取消这个动作。 4.应用技巧 在Linux 和Unix系统上,所有文件都是作为一个大型树(以/为根)的一部分...

    Shell正则表达式学习笔记

    正规表示法(或称为常规表示法)是透过一些特殊字符的排列,用以搜寻/取代/删除一列或多列文字字符串, 简单的说,正规表示法就是用在字符串的处理上面的一项...用来在文件中匹配符合条件的字符串,正则表达式是“包含匹

    Linux C程序设计大全

    第4章 C语言中的指针与字符串 4.1 sizeof运算符 4.1.1 sizeof运算符的应用——得到内置类型的大小 4.1.2 sizeof运算符的应用——得到复合类型的大小 4.2 指针的应用 4.2.1 指针与别名陷阱 4.2.2 数组的指针 4.2.3 ...

    vim-textobj-quote:在Vim中使用'curly'引号字符

    支持包含收缩的带引号的字符串(例如“don't” ) 可配置以支持 包括四个附加功能: educate-从“直引号”键自动输入“印刷引号” 替换-将引号从直接转换为印刷,反之亦然 matchit-印刷报价对的匹配% 环绕-用...

    unix实验报告.doc

    字符串替换等工作 命令:创建hello文件:vi hello 命令:统计创建文件大小:du –h davidlinux 命令:字符串的替换:在命令模式下输入 cat hello查看文件内容如下: 可以把文件中所有的lilei替换成xiaoming。...

    Linux应用技术:Linux重定向与管道.pptx

    项目3 Linux磁盘文件管理 第三讲 主要内容 Linux操作命令 Linux目录管理 Linux文件管理 ...“”:为此处操作符,该操作符在从键盘读取内容时,读到指定字符串时,停止读取动作,然后将所读内容输出。与cat

    C语言入门经典(第4版)--源代码及课后练习答案

    10.3.3 输入格式字符串中的字符 377 10.3.4 输入浮点数的各种变化 378 10.3.5 读取十六进制和八进制值 379 10.3.6 用scanf()读取字符 381 10.3.7 scanf()的陷阱 383 10.3.8 从键盘上输入字符串 383 10.3.9 ...

Global site tag (gtag.js) - Google Analytics