当前位置:首页 > 计算机相关 > ubuntu系统 > 正文内容

vim文本处理

piikee7年前 (2017-02-16)ubuntu系统667
1. 基本的替换
: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

2. 可以使用 # 作为分隔符,此时中间出现的 / 不会作为分隔符
:s#vivian/#sky/# 替换当前行第一个 vivian/ 为 sky/
:%s+/oradata/apras/+/user01/apras1+ (使用+ 来 替换 / ): /oradata/apras/替换成/user01/apras1/
3. 删除文本中的^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
4. 其它用法
利用 :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 或者vi 删除每行最后一个字符






:1,$s/.$//

扫描二维码推送至手机访问。

版权声明:本文由萍客小居[www.piikee.net]发布,如需转载请注明出处。

本文链接:https://www.piikee.net/1249.html

分享给朋友:

相关文章

(In some cases useful info about processes that use the device is found by lsof(8) or fuser(1))

 (In some cases useful info about processes that use the device is found by lsof(8) or fuser(1))的解决办法。在ubuntu系统中,想umount...

ubuntu升级内核的方法(命令行升级ubuntu的内核)

sudo apt-get install linux-generic-lts-xenial linux-image-generic-lts-xenial一路y下去,最后reboot重启。重启完uname -a就可以看到新内核版本了。...

ubuntu下设置iptables方法

# whereis iptables #查看系统是否安装防火墙可以看到:iptables: /sbin/iptables /usr/share/iptables /usr/share/man/man8/iptables.8.gz #表示已经...

ubuntu16最新版本下iotop无法使用的解决办法

ubuntu16更新到最新版本,启动iotop出现如下错误:Traceback (most recent call last):File "/usr/sbin/iotop", line 17, in <module>main()...

linux下批量创建文件夹和批量创建文件

linux下创建文件夹的命令为: mkdir xxx (xxx为你要创建的文件夹名字)linux下批量创建文件夹方法:(ubuntu为例)mkdir {0,1,2,3}{a,b,c}即可批量创建名字为0a,0b,0c,1a,1b,1c,...

Ubuntu 18.04 LTS以上版本 使用 Netplan 配置网络

Ubuntu 18.04 LTS 之后的版本都采用全新的 Netplan 来管理网络配置,所以如果我们需要修改 Ubuntu 18.04 LTS 的网络设置,需要配置 Netplan 并让其生效。本文详细讲解 Netplan 的配置流程,包...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。