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" <src >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、:g 等命令。这些命令可以让用户快速地替换文件中的文字或字符串。 Vi 编辑器是一个功能强大、灵活、易于使用的编辑器。它可以满足用户在 UNIX 操作系统中编辑文件的需求。...
### 替换命令 - **s/p1/p2/g**:将当前行中的所有 p1 替换成 p2。 - **n1,n2s/p1/p2/g**:将第 n1 行到第 n2 行中的所有 p1 替换成 p2。 - **g/p1/s//p2/g**:在所有包含 p1 的行中将 p1 替换成 p2。 - **allg/p1/s...
以下是一些常见的Linux基本命令: 1. **ls**:列出目录内容,用于查看当前目录下的文件和子目录。 2. **cd**:改变目录,用于切换到不同的目录路径。 3. **pwd**:打印工作目录,显示当前所在的目录。 4. **touch**...
本文将主要聚焦于“vi”命令,一个强大的文本编辑器,以及与之相关的其他Linux命令。 **一、vi编辑器** vi(Visual Editor)是Linux和Unix系统中的一个全屏文本编辑器,它的全名是“Visual Editor for the Third ...
### Linux应用技术:Linux常用命令与VI文件编辑器 #### 实验目的 本实验旨在让学员熟练掌握Linux操作系统的基本操作,包括常用的文件和目录管理命令以及如何使用VI编辑器进行文本文件的创建与编辑。 #### 实验内容...
### Linux 下 vi 编辑器命令总结 #### 一、基本导航命令 在 Linux 的 vi 编辑器中,熟练掌握导航命令对于提高编辑效率至关重要。 - **移动光标** - `h`:向左移动一个字符。 - `j`:向下移动一行。 - `k`:...
然后可以使用以下命令: - `:w` 保存文件但不退出。 - `:wq` 或 `:x` 保存文件并退出。 - `:q` 试图不保存退出,如果文件被修改过,会提示确认。 - `:q!` 不保存文件强制退出。 总的来说,掌握vi的命令用法对于日常...
### Linux VI/VIM 替换命令详解 #### 一、全局替换 在 Linux 的 VI/VIM 编辑器中,可以使用 `:s` 命令进行字符串替换。全局替换指的是在整个文档范围内进行字符串替换。 1. **使用 `v + G + $`** 首先进入可视...
### Linux Vi 命令详解 #### 一、Vi 编辑器基本概念 Vi(Visual editor)是一种广泛应用于Linux及Unix系统中的文本编辑器。它最初由Bill Joy开发,并随同BSD Unix一起发布,逐渐成为了许多用户进行文本编辑的标准...
### Linux 下 Vi 编辑器常用命令详解 #### 一、进入 vi 的命令 1. **vi filename**:此命令用于打开或编辑一个名为 `filename` 的文件,并且默认会进入命令模式。 2. **vi +n filename**:通过这个命令可以打开文件...
### Linux VI 常用命令详解 #### 一、VI编辑器概述 VI(Visual Editor)是Unix/Linux系统中最常见的文本编辑器之一。对于初学者来说,VI的学习曲线较为陡峭,但掌握后能极大地提高工作效率。本文将详细介绍VI编辑器...
以下是一些常见的`vi`命令: 1. **移动光标**: - `h`:向左移动一字符。 - `j`:向下移动一行。 - `k`:向上移动一行。 - `l`:向右移动一字符。 - `0`(数字零):移动到当前行的首字符。 - `$`:移动到...
### Linux下Vi编辑器命令大全 #### 概述 Vi编辑器是Unix及类Unix操作系统(包括Linux)中广泛使用的文本编辑工具。Vi编辑器具备强大的功能和丰富的命令集,适用于从简单的文本编辑到复杂的脚本编写等多种场景。本文...
### Linux Vi命令集合详解 #### 一、Vi编辑器简介 Vi(Visual editor)是Unix/Linux系统中的标准文本编辑器,具有强大的文本编辑功能。它最初由Bill Joy为Unix系统开发,随后被移植到多种操作系统上。对于学习...
此外,vi还提供了翻页移动光标的命令: - [Ctrl]+f:向前翻一页 - [Ctrl]+b:向后翻一页 定位光标的命令还有: - ^(或0):移动光标到当前行的第一个非空白字符 - $:移动光标到当前行的行尾 - G:移动到文件的...
### Linux VI/VIM 编辑器常用命令详解 在 Linux 和 Unix 类系统中,VI(Visual Editor)编辑器是标准的文本编辑工具,而 VIM(VI Improved)则是其增强版,提供了更多功能和改进。VI/VIM 编辑器因其高效、功能强大...
Linux下Vi命令详解的知识点涵盖了文本编辑器Vi/Vim的使用方法和技巧。Vi是一个功能强大的文本编辑器,在Linux系统中广泛应用,具备高效的编辑能力。Vim是Vi的增强版,提供了更多的功能和扩展性。 首先,Vi有三种...
**替换命令** - `/pattern`:在文件中搜索包含`pattern`的行。 - `?pattern`:反向搜索包含`pattern`的行。 - `n`:向下查找下一个匹配项。 - `N`:向上查找下一个匹配项。 - `s/p1/p2/g`:将当前行中的所有`p1`...
#### 七、搜索与替换命令 - **/pattern**:从光标位置开始向文件末尾搜索`pattern`。 - **?pattern**:从光标位置开始向文件开头搜索`pattern`。 - **n**:在相同的方向重复上一次的搜索命令。 - **N**:在相反的...