linux vi 中s 替换方法

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

如果上述方法无用,则正确的解决办法是:

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 放在命令开头,表示对正文中所有包含搜索字符串的行进行替换操作。

http://blog.chinaunix.net/uid-20660194-id-218907.html

时间: 2024-11-12 17:28:31

linux vi 中s 替换方法的相关文章

Method Swizzing中一般替换方法都写在Category类别里吗?有没有别的实现方式

Method Swizzing中一般替换方法都写在Category类别里吗?有没有别的实现方式 >> ios 这个答案描述的挺清楚的:http://www.goodpm.net/postreply/ios/1010000008980619/MethodSwizzing中一般替换方法都写在Category类别里吗有没有别的实现方式.html

Linux Kernel中获取当前目录方法(undone)

目录 0. 引言 1. 基于进程内存镜像信息struct mm_struct获取struct path调用d_path()获取当前进程的"绝对路径" 2. 基于文件描述符(fd).task_struct调用d_path()获取当前进程的"当前目录" 3. 基于dentry.vfsmount调用d_path()获取当前进程的"当前目录" 4. 基于get_fs_pwd获取当前目录 0. 引言 本文涉及的是ring0下的获取当前进程工作目录的方法,L

Linux vi中查找字符内容的方法

方法如下: 1.命令模式下输入"/字符串",例如"/woman". 2.如果查找下一个,按"n"即可. vi 查找替换大全 vi/vim 中可以使用 :s 命令来替换字符串.以前只会使用一种格式来全文替换,今天发现该命令有很多种写法(vi 真是强大啊,还有很多需要学习),记录几种在此,方便以后查询. :s/vivian/sky/ 替换当前行第一个 vivian 为 sky :s/vivian/sky/g 替换当前行所有 vivian 为 sky

《vi中的替换艺术》-linux命令五分钟系列之十一

vi方面的内容不知道分类到哪里好,就放到<Linux命令五分钟系列>里吧! 今天编程,关于栈的一个小例子,其间我需要把”S.”替换为”S->”(替换不包括双引号). 其实这个不难,不过我觉得应该总结一下vi里的替换技术了,以备以后查阅. 1 所有替换方案都要在冒号“:”状态下书写. 2 如果想将abc替换为xyz,那么就这样 :s/abc/xyz/ 不过要特别注意,这个替换只局限于光标所在当前行,而且更糟糕的是它只替换当前行的第一个匹配项. 即,如果此行内容为I write abc, I

linux vi命令的使用方法

在配置lamp服务器时用到了linux在线编辑文本所以查了一下vi使用方法 vi 要操作的文件名 移动 以下命令可以帮助您在文件内移动: h 在当前行往左移动一个字符 j 向下移动到下一行 k 向上移动到上一行 l 在当前行往右移动一个字符 w 移动到当前行下一个字 e 移动到当前行下一个字的结束处 b 移动到当前行上一个字的开始处 Ctrl-f 向前滚动一页 Ctrl-b 向后滚动一页 如果在这些命令之前键入数字,则命令将执行该数字表示的次数.该数字称为重复次数 或者就称为计数.例如,5h 将

Linux vi 中移动光标 命令

移动光标 上:k nk:向上移动n行 9999k或gg可以移到第一行 G移到最后一行下:j nj:向下移动n行左:h nh:向左移动n列右:l nl:向右移动n列 w:光标以单词向前移动 nw:光标向前移动n个单词 光标到单词的第一个字母上b:与w相反e: 光标以单词向前移动 ne:光标向前移动n个单词 光标到单词的最后一个字母上ge:与e相反 $:移动光标到行尾 n$:移动到第n行的行尾0(Num):移动光标到行首^:移动光标到行首第一个非空字符上去 f<a>:移动光标到当前行的字符a上,n

【转】linux /centos 中OpenSSL升级方法详解

相关软件下载地址 Apache:http://httpd.apache.org/ Nginx:http://nginx.org/en/download.html OpenSSL:http://www.openssl.org/ openssl-poc 附件说明 PoC.py : 漏洞利用测试PoC脚本 showssl.pl:OpenSSL动态库版本检测脚本 安装OpenSSL步骤 由于运营环境不同,以下过程仅供参考.openssl属于系统应用,被较多应用依赖,由于环境不同等因素,请先在测试环境进行

Linux系统中vi编辑器的使用方法入门

vi编辑器是Linux系统下标准的编辑器.而且不逊色于其他任何最新的编辑器.可是会用的有多少呢.下面介绍一下vi编辑器的简单用法和部分命令.让你在Linux系统中畅行无阻. 基本上vi可以分为三种状态,分别是命令模式(command mode).插入模式(Insert mode)和底行模式(last line mode). 1) 命令行模式command mode) 控制屏幕光标的移动,字符.字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode.  

Vi/Vim查找替换使用方法

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 行开始到最后一行中每一行所有 vivi