vi/vim 中替换字符串

本文详细介绍了如何在vim编辑器中使用:s命令进行字符串替换,包括替换当前行、指定范围内的行以及全文替换的方法,并提供了使用不同分隔符的技巧。

vi/vim 中可以使用 :s 命令来替换字符串。

:s/vivian/sky/ 替换当前行第一个 vivian 为 sky

:s/vivian/sky/g 替换当前行所有 vivian 为 sky

:n,$s/vivian/sky/ 替换第 n 行开始到最后一行中每一行的第一个 vivian 为 sky

:2,$s/vivian/sky/g 替换第 2 行开始到最后一行中每一行所有 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 放在命令开头,表示对正文中所有包含搜索字符串的行进行替换操作。



第1关:vi/vim基本用法 100 学习内容 参考答案 记录 评论 任务描述 相关知识 启动vi/vim编辑器 退出vi/vim编辑器。 编程要求 测试说明 任务描述 通常情况下我们在图形化界面对文件编辑操作步骤为:(1)创建一个文件,(2)打开文件进行编辑,(3)保存编辑内容,(4)关闭文件。当我们工作在Linux命令行模式时,我们如何对一个文件进行编辑操作,此时我们就可以使用vi/vim命令来对文件编辑,而依赖于图形界面。 本关任务:在命令行模式下,使用vi/vim命令来查看已存在文件,并保存退出vi/vim。 相关知识 vi是Unix操作系统中最常用的全屏编辑器,Linux中常用的是vi的加强版vimvimvi完全兼容。在Linux系统中,vivim是完全等价的两条命令。 vi/vim编辑器可以执行输入、删除、查找、替换、块操作等众多文件操作,而且用户可以根据自己的需要对其进行定制,这是其他编辑器程序没有的工程。vi/vim编辑器以命令行的方式处理文件,尽管不如图形化处理方式直观,但它具有操作速度快、功能全面等优点。另外,vi/vim不是一个排版程序,它不像Word或WPS那样可以对字体、格式、段落等其他属性进行设置,它只是一个文本编辑器程序。 启动vi/vim编辑器 vi/vim的基本格式如下: vi [option] [filename...] 或 vim [option] [filename...] 其中,[option]是选项,[filename]是需要编辑的一个或多个文件名。 案例演示1: 启动vi/vim编辑器,同时打开文件testFile,可以使用如下命令: vi testFile 或 vim testFile [请在右侧“命令行”里直接体验] 因为当前目录下没有testFile文件,所以此时打开的文件是空,并且在底部一行显示的是打开的文件名以及当前被打开的文件状态,因为是新建的文件,所以显示的是"testFile" [New File]标识。 退出vi/vim编辑器。 案例演示2: 退出vi/vim编辑器,同时保存新创建的文件testFile,具体操作如下所示: 1.当往新文件中输入了内容的时候 先按一下键盘 Esc 键,再输入“:wq”命令后回车,即可保存当前文件并退出vi/vim编辑器; 2.当没往新文件中输入内容的时候 直接输入“:wq”命令后回车,即可保存当前文件并退出vi/vim编辑器; [请在右侧“命令行”里直接体验] 按下回车键后,我们将退出了当前vi/vim编辑器,如果不想保存testFile文件而是只想退出vi/vim编辑器,则我们输入:q命令后回车即可。 [请在右侧“命令行”里直接体验] 编程要求 本关任务是学会如何启动和退出vi/vim编辑器。 注意:在执行本关任务前,首先执行如下命令来初始化任务环境 rm -fr /root/oldFile > /dev/null 2>&1 rm -fr /root/.oldFile > /dev/null 2>&1 echo "welcome to Vi/Vim" > /root/oldFile && echo "welcome to Vi/Vim" > /root/.oldFile 具体编程要求如下: 使用vi/vim编辑器查看当前目录下已存在文件oldFile,然后保存退出vi/vim编辑器; 测试说明 本关的测试需要用户在右侧的命令行下完成,用户只需将需要完成的命令在右侧命令行下直接操作即可,然后点击评测按钮,平台会自动验证用户是否按照要求去检测结果。 开始你的任务吧,祝你成功! 如果你觉得这一关的内容对你有帮助,请你在下面点赞。
10-25
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值