`

vim 字符串替换

    博客分类:
  • VIM
 
阅读更多

[导读]vi/vim 中可以使用 :s 命令来替换字符串。以前只会使用一种格式来全文替换,今天发现该命令有很多种写法(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" < src >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 放在命令开头,表示对正文中所有包含搜索字符串的行进行替换操作。

分享到:
评论

相关推荐

    vim 全文字符串替换

    vim全文字符串替换,vim使用方法,说明

    LINUX vim替换字符串指令.docx

    LINUX vim替换字符串指令.docx

    linux系统vim实验报告.doc

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

    在vim编辑器案例练习

    (5)将 50~100行的 man 字符串改为大写MAN字符串,并且逐个询问是否需要修改,如何操作?如果在筛选过程中一直按“y”键,结果会在最后一行出现改变了多少个man的说明,请回答一共替换了多少个man。 (6)...

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

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

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

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

    Hacking Vim

    g* 向后查找光标下字符串(不必是整词) vimgrep /pattern/[j][g] file file2 … fileN 多文件查找 使用标志(mark)定位: 0~9 系统自用 a-z 本文件mark (使用方法: 标志:ma, 调至标志 `a) A-Z 跨文件的mark :marks ...

    vim编辑器中 熟练掌握 shell环境变量

    结果就是用字符串string代替$name,此过程也称为变量替换。 在定义变量时,若string中包含空格、制表符和换行符,则sting必须用'string 或者"string"的形式,即用单(双)引号将其括起来。双引号内允许变量替换,...

    switch.vim:一个简单的Vim插件,可以使用预定义的替换来切换文本片段

    截屏! 这个插件比说明容易演示。... 为了完全避免默认映射,请将变量设置为空字符串: let g: switch_mapping = " " 有关如何创建具有不同定义的多个映射的信息,请参见下面的“自定义”部分。

    linux下关于正则表达式grep的一点总结

    正则表达式(Regular Expression)是用于描述一组字符串特征的模式,用来匹配特定的字符串。通过特殊字符+普通字符来进行模式描述,从而达到文本匹配目的工具。类似于生活中常见的寻人启示,通过描述一个人的特征来...

    Linux学习笔记(九)Vim文本编辑器的使用

    光标移动命令以字符为单位移动以单词为单位的移动移动到行首或行尾移动到一行的指定字符处移动到匹配的括号处移动到指定行数使用Vim进行编辑查找指定字符串使用Vim进行替换使用Vim进行删除、粘贴、复制使用Vim撤销上...

    vim-unstack:Vim插件,用于解析堆栈跟踪并打开文件

    如果要使用其他映射键,请输入let g:unstack_mapkey=&lt;F10&gt; (用所选键替换&lt;F10&gt; ,或使用空字符串禁用映射)。 您还可以(从任何程序)将堆栈跟踪复制到系统剪贴板并运行:UnstackFromClipboard 。 Tmux用户可以将...

    最棒的:vim和tmux的配置文件

    最大棒极了 vim和tmux的配置文件,由爱好和平的嬉皮士的小型亚文化精心管理。 专为Mac OS X设计。 这里面是什么? (独立或用于终端) 语法突出显示 想知道更多?...,l开始对齐字符串中的行,通常用作,l=以对

    1714080902201-陈庆辉-实验三1

    2、掌握利用 vi 新建、编辑和保存文件 3、熟悉光标的移动、文本的插入与删除等操作 4、掌握字符串替换,行的复制、移动、撤销和删除等操作 2、利用 vim 编

    vim-fnr:没有正则表达式的 Find-N-Replace 助手

    pseudocl 'Plug ' junegunn/vim-fnr '用法正常模式&lt;Leader&gt;r&lt;Movement&gt; - 范围内的替换&lt;Leader&gt;R - 替换整个文档中光标下的单词视觉模式&lt;Leader&gt;r - 选定范围内的替换&lt;Leader&gt;R - 替换整个文档中的选定字符串命令行:...

    Yankitute:正则表达式驱动的Yank +替代品

    介绍 Yankitute将yank和substitute Vim命令合并为... [string] :格式化字符串替换匹配-就像在substitute 。 如果未提供,则按原样取消匹配。 [flags] :当前仅支持一个标志g 。 如果给出了g标志,则在每一行中搜索多

    dotvim:我的vim配置

    Vim的配置是基于 。 插件集以及按钮和选项的某些组合已部分更改。二手插件用作主要的插件管理器-它可以直接从vim安装,更新和删除插件。... 文件管理器搜索并用许多选项替换子字符串或缩写。 总的来说,我还不太了解为

    golang-template:我的Golang专案一般范本

    将此存储库中的所有字符串yiranzai/golang-template替换为your_github_username/your_awesome_project 将此存储库中的所有字符串golang-template替换为your_awesome_project 在GitHub上设置 单击GitHub项目页面上...

    Linux实用命令整理

    0. 基本命令  linux 基本命令整理  1. 压缩 解压  tar -zcvf a.tar.gz a #把a...  2.2 vim统计某一个字符串的个数  :m,ns/word_1/&/gn #统计从m行到n行之间word_1的个数, n表示只是统计个数不替换  :

    Linux C程序设计大全

    3.7.5 关于printf函数的疑问——缺少字符串地址参数 第4章 C语言中的指针与字符串 4.1 sizeof运算符 4.1.1 sizeof运算符的应用——得到内置类型的大小 4.1.2 sizeof运算符的应用——得到复合类型的大小 4.2 指针的...

Global site tag (gtag.js) - Google Analytics