vi替换命令用法详解
: ranges /pat1/pat2/g
其中
: 这是Vi 的命令执行界面。
range 是命令执行范围的指定: 百分号(% )表示所有行
点(. )表示当前行
美元($ )表示最末行
例如:
10,20 表示第10 到20 行,
.,$ 表示当前行到最后一行,.
+2,$-5 表示当前行后两行直到全文的倒数第五行
s 表示其后是一个替换命令。
pat1 这是要查找的一个正则表达式
pat2 这是希望把匹配串变成的模式的正则表达式
g 可选标志,带这个标志表示替换将针对行中每个匹配的串进行,否则则只替换行中第一个匹配串。
:/string #向下查找
:?stirng # 向上查找
--------------------------------------------------下述为举例说明:
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 放在命令开头,表示对正文中所有包含搜索字符串的行进行替换操作。
相关推荐
这个命令是VI编辑器中全局替换命令的一个实例,用于在整个文档中查找并替换特定模式。这里,“`%s`”表示对整个文档(%)进行搜索替换操作;“`#`”作为分隔符,将命令分为三部分:“`old_pattern`”(被替换的旧...
Word常用查找与替换实例及方法 可以大幅提高排版效率! 不看绝对后悔,建议下了留着备用 另:别人写的,不记得从哪里下的了: 目录 Word查找与替换•ASCII字符集代码 I Word查找栏代码•通配符一览表 II Word...
本文将详细介绍在Linux环境下进行文件查找与替换的方法,包括常用的命令工具如`sed`和`vi`(或`vim`)等,并通过具体示例加以解释。 #### 二、sed 命令 **sed** 是一个强大的流编辑器,用于处理文本文件中的数据流...
- **命令模式**:在这个模式下,你可以移动光标、删除文本、复制粘贴、查找替换等,但不能直接输入文本。 - **插入模式**:在命令模式下按下`i`、`a`、`o`等键可以进入插入模式,此时可以直接在光标位置输入文本。...
3. **底行模式**:在命令模式下输入`:`, `Esc`键后可以进入底行模式,这里可以执行保存、退出、查找替换等全局操作。 **vi的常用快捷键和命令** 1. **移动光标**:`h`向左,`j`向下,`k`向上,`l`向右;`w`跳到下...
- 查找与替换:`/word`查找"word",`n`下一个,`N`上一个。`:s/old/new/g`将当前行所有"old"替换为"new",`:g/old/s//new/g`全局替换。 3. **插入模式** - 进入插入模式:在命令模式下按`i`、`a`、`o`分别在光标...
3. **底行模式**:通过`:`键进入,用于执行保存、查找替换、退出等命令。 **四、基本操作** 1. **打开文件**:`vim 文件名` 命令用于打开一个文件进行编辑。 2. **移动光标**:`h`左移,`j`下移,`k`上移,`l`右移...
#### 查找与替换 - `/string`:从当前位置开始向文件尾部搜索包含string的行。 - `?string`:从当前位置开始向文件头部搜索包含string的行。 - `n`:查找下一个匹配项。 - `N`:查找上一个匹配项。 - `:%s/old/new/...
3. **底行模式**:通过在命令模式下输入`:`, `:`后可以执行保存、退出、查找替换等操作。 ### 命令模式操作 - **移动光标**:使用`h`向左,`j`向下,`k`向上,`l`向右移动光标;`0`移到行首,`$`移到行尾。 - **...
3. **查找替换**:`:s` 命令结合正则表达式实现查找替换。 4. **批量操作**:`:n1,n2 command` 在行号n1到n2之间执行command。 **六、vi的高级特性** 1. **可视模式**:在命令模式下,使用`v`进入可视模式,可选...
Vi具备强大的文本操作能力,包括但不限于输出、删除、查找、替换、块操作等功能。此外,用户还可以根据个人需求定制Vi,使其更加符合自己的使用习惯,这是许多其他编辑器所不具备的功能。 值得注意的是,Vi并非一个...
VI还支持手动查找并替换字符串,可以通过“:s”命令进行一次替换,然后使用“n”查找下一个匹配项并再次替换。 以上提到的命令是VI编辑器在日常工作中使用最频繁的命令集合,无论是进行Linux系统管理还是编写程序...
五、查找及替换命令 * /pattern : 从光标开始处向文件尾搜索 pattern * ?pattern : 从光标开始处向文件首搜索 pattern * n/N : 在同一方向/反方向上重复上一次搜索命令 * % : 查找配对的括号 * :s/p1/p2/g : 将当前...
VI支持在文本中查找和替换字符串: - `/pattern`:从当前位置向文件末尾查找`pattern`。 - `?pattern`:从当前位置向文件开始查找`pattern`。 - `n`:重复上一次查找命令,继续查找下一个匹配项。 - `N`:反向重复...
SEARCH 注: 反向查找,按shift+n键,把光标移动到下一个符合条件的替换::s /SEARCH/REPLACE/g 注:把当前光标所处的行中的SEARCH单词,替换成 REPLACE,并把所有SEARCH高亮显示;:%s /SEARCH/REPLACE 注: 把文档中...
2. **高效编辑**:VI提供了一套丰富的命令集,如删除、复制、粘贴、查找替换等,这些操作往往只需要一个或几个按键即可完成,极大地提高了编程效率。 3. **宏录制和回放**:用户可以录制一系列操作作为宏,然后在...
vi编辑器支持强大的文本查找和替换功能,通过`/string`和`?string`命令分别从光标位置向下和向上查找字符串,`n`和`N`命令则用于定位下一个或上一个匹配项。全局查找和替换可通过`:s/old/new/g`命令实现。 #### ...
vi 编辑器中的查找和替换命令包括: * f[x]、F[x]、t[x]、T[x]:在行上查找字符 * /[string]、?[string]:全文查找字符串 * r、R、s、S:替换字符、行 * : [LineNum],[LineNums]/[old string]/[new string]/g:...
3. **末行模式**:在命令模式下输入`:`, `:`后可以执行保存、退出、查找替换等操作。 **二、基本操作** 1. **打开与退出**:`vi 文件名`打开文件,`:q`退出(未修改);`:q!`强制退出(即使有未保存的修改);`:wq...