linux中vim如何替换字符串,vim中替换字符串的方法有哪些

vim中替换字符串的方法有哪些

发布时间:2020-06-04 11:41:18

来源:亿速云

阅读:238

作者:Leah

这篇文章为大家带来有关vim中替换字符串的方法介绍,如果在日常学习或工作遇到这个问题,希望大家通过这篇文章的几种方法解决替换字符串的问题。

:%s/str1/str2/g   替换每一行中所有str1为str2 常用!

:s/str1/str2/g 替换当前行所有str1为str2

基本替换

:s/str1/str2/ 替换当前行第一个str1为str2

:s/str1/str2/g 替换当前行所有str1为str2

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

:n,$s/str1/str2/g 替换第 n 行开始到最后一行中每一行所有str1为str2

(n 为数字,若 n 为 .,表示从当前行开始到最后一行)

:%s/str1/str2/(等同于 :g/str1/s//str2/) 替换每一行的第一个str1为str2

:%s/str1/str2/g(等同于 :g/str1/s//str2/g) 替换每一行中所有str1为str2可以使用 # 作为分隔符,此时中间出现的 / 不会作为分隔符

:s#str1/#str2/# 替换当前行第一个str1/ 为str2/

:%s+/str11/str12/+/str21/str22+ (使用+ 来 替换 / ): /str11/str12/替换成/str21/str22/文件中删除^M

问题描述:对于换行,Windows下用回车换行(0A0D)来表示,Linux下是回车(0A)来表示。这样,将window上的文件拷到Unix上用时,总会有个^M,请写个用在Unix下的过滤Windows文件的换行符(0D)的shell或c程序。有两种方法可以完成此目的:

(1)使用命令:cat oldfilename | tr -d “^V^M” > newfilename

(2)使用命令:sed -e “s/^V^M//” oldfilename > newfilename

需要注意的是在1、2两种方法中,^V和^M指的是Ctrl+V和Ctrl+M。你必须要手工进行输入,而不是粘贴。

在vim中处理:首先使用vim打开文件,然后按ESC键,接着输入命令:

:%s/^V^M//

:%s/^M$//g

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

(1) tr -d "\r" < old_file_name > new_file_name 或者 cat oldfilename | tr -d "\r" > new_file_name

(2) tr -d "\015" < old_file_name > new_file_name或者 cat oldfilename | tr -d "\015" > new_file_name

strings A>B其它技巧

利用 :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/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/

* ****

删除文本中的^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" dest

· tr -d "5" dest

· strings A>B

其它

利用 :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中替换字符串的方法就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/573985.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ELK Stack (1) —— ELK + Redis安装

ELK Stack (1) —— ELK Redis安装 摘要 安装Elasticsearch、Logstash、Kibana与Redis以实现一个日志收集平台 版本 elasticsearch版本: elasticsearch-2.2.0 logstash版本: logstash-2.2.2 kibana版本: kibana-4.3.1-darwin-x64 jdk版本: jdk1.8.0_65 内容 目标架构 Logstash…

智能机器人路径规划及代码_AI割草机器人用ML+传感器自动规划路径

作者&#xff1a;DIGITIMES谢明珊Graze Mowing发表全新自动割草机器人&#xff0c;可针对中大型商用空间提高景观维护效率&#xff0c;吸引来自世界各地的高尔夫球场以及景观维护公司的询问&#xff0c;已累积1,900多万美元预购订单和商业合约&#xff0c;可望为劳力密集的造景…

request.get... getHeader 能取得的信息 参数

转载▼StringTokenizer st new StringTokenizer(agent,";"); st.nextToken(); //得到用户的浏览器名 String userbrowser st.nextToken(); System.out.println(userbrowser); //得到用户的操作系统名 String useros st.nextToken(); System.out.println(useros)…

同一个浏览器打开不同端口的程序登录_【BI报表制作】单点登录与个性化开发...

无法正常登录&#xff1f;想将报表内默认的奥威BI软件logo换成自己家的&#xff1f;想连接Excel数据源做可视化&#xff1f;想实现单点登录&#xff08;公开分享&#xff09;&#xff1f;本期的实用课程OurwayBI单点登录与个性化开发可不要错过了。修改端口奥威BI软件默认的端口…

linux使用u盘的过程是,图文详解Linux下使用U盘的方法

习惯了在Windows系统下即插即用U盘&#xff0c;换成Linux系统下你可能就不会使用了。为什么这么说呢?因为Linux系统U盘被视为SCSI设备&#xff0c;因此不能直接使用&#xff0c;还需要我们手动进行相应的设置&#xff0c;下面这篇教程就专门为第一次在Linux下使用U盘的朋友们而…

打印机怎么扫描到电脑_【柯美C360扫描怎么用教程】打印机怎么扫描

【C360扫描怎么用教程】打印机怎么扫描各个品牌的复印机的扫描功能使用方法大同小异&#xff0c;主要步骤就是将扫描原件放置好&#xff0c;选择单面或双面、文件类型、清晰度等&#xff0c;然后按开始就可以扫描了&#xff0c;下面广州柯镁办公设备以柯尼卡美能达复印机C360/C…

自己做站点(一) 从头至尾实现一个企业站的速成

网上随便搜一下。就会发现“xx天学会站点设计”的教程数不胜数&#xff0c;这就说明站点开发并不像非常多人觉得的那么难&#xff0c;从今天開始跟大家一起完毕一个企业站的搭建以及域名申请以及上线的所有过程&#xff0c;希望对大家有所帮助。终于的效果如这个站点所看到的。…

代码证年检所需资料_上海注销小规模公司所需材料及流程

大多数企业分类为&#xff1a;一般人和小规模。公司经营当中如果遇到问题&#xff0c;不再经营的时候&#xff0c;可选择注销。但是&#xff0c;一般人公司注销和小规模注销又有些许的不同。申与城企业擅长各种公司注销。今天就和大家聊一聊新小规模公司注销流程&#xff0c;以…

linux 多个select,Linux select()和多个套接字的FIFO排序?

您可以使用IP_PKTINFO获取数据包发送到的多播组的地址 - 即使套接字订阅了一堆多播组。有了这个&#xff0c;您将按顺序获取数据包并按组地址过滤。请参阅以下示例&#xff1a;#include #include #include #include #include #include #include #include #include #include #in…

Python爬虫实战(5):模拟登录淘宝并获取所有订单(1)

经过多次尝试&#xff0c;模拟登录淘宝终于成功了&#xff0c;实在是不容易&#xff0c;淘宝的登录加密和验证太复杂了&#xff0c;煞费苦心&#xff0c;在此写出来和大家一起分享&#xff0c;希望大家支持。 本篇内容 1. python模拟登录淘宝网页 2. 获取登录用户的所有订单详情…

python逻辑流程图_python-程序流程图

原博文 2020-06-03 12:24 − 程序流程图 1、流程图的基本要素&#xff1a; 表示相应操作的框 带箭头的流程线 框内外必要的文字说明 起止框 判断...01055 相关推荐 2019-09-28 21:13 − Python python是一种跨平台的计算机程序设计语言&#xff0c;是一种面向对象的动态类型语言…

linux差分包升级流程,OTA 差分升级包的制作

OTA 升级是 Android 系统提供的标准软件升级方式。 它功能强大&#xff0c;提供了完全升级、增量升级模式&#xff0c;可以通过 SD卡升级&#xff0c;也可以通过网络升级。那如何生成差分升级包呢&#xff1f;Android源码的根目录下有以下两个命令&#xff1a;1、make ——会生…

jcenter那些事儿

jcenter是一个server托管在bintray.com的maven仓库。 in project’s build.gradle file allprojects { repositories { jcenter() } } 或者也能够用Maven Central&#xff1a;server托管在sonatype.org的maven仓库。allprojects { repositories { mavenCentral() } } 这…

vs2017python开发_VS2017作为python开发的IDE

在VS这一款号称“宇宙最强”的IDE和编译器中&#xff0c;高度集成了对python语言的支持&#xff0c;并直接加入了机器学习的框架&#xff0c;只需要在安装的时候选择python模块就行&#xff08;可以选择安装python2,、python3或者Anaconda&#xff09;。VS2017安装好之后就可以…

wps for linux alpha 15 语言包,WPS Office for Linux Alpah 7发布

WPS Office for Linux A7终于出来了&#xff0c;想当年做了一个ppt给老大发过去&#xff0c;后来发现没人能打开。。。先不看功能上的改进&#xff0c;光bug就修复了将近3千条&#xff0c;可见wps4linux团队的付出。版本摘要&#xff1a;增加et组建和主干同步至10月15日和v9分支…

50 个 Bootstrap 插件

Bootstrap是快速开发Web应用程序的前端工具包。它是一个CSS和HTML的集合&#xff0c;它使用了最新的浏览器技术&#xff0c;给你的Web开发提供了时尚的版式&#xff0c;表单&#xff0c;buttons&#xff0c;表格&#xff0c;网格系统等等。 本文向你推荐 50 个 Bootstrap 的插件…

linux shell sql赋值,Linux下shell执行SQL

mysql -P 端口号 -u用户名 -p密码 -e"use数据库名;待执行的sql语句;"取消用户密码有效期&#xff0c;关闭修改密码/usr/local/u-mail/service/mysql/bin/mysql -uumail -pcat /usr/local/u-mail/config/mysql_password.conf -e "use umail;update umail.core_ma…

python能和c语音交互吗_Python和C语言交互--ctypes,struct

python和c语言进行数据交互&#xff0c;涉及类型转换&#xff0c;字节对齐&#xff0c;字节序大小端转换等。相关模块ctypes&#xff0c;struct&#xff0c;memoryview。 一.ctypes:python和c语言使用结构体数据进行交互 场景&#xff1a;有一个C语言生成的动态链接库&#xff…

python3获取网页内容_python3获取一个网页特定内容

我们今天要爬取的网址为&#xff1a;https://www.zhiliti.com.cn/html/luoji/list7_1.html 一、目标&#xff1a;获取下图红色部分内容即获取所有的题目以及答案。 二、实现步骤。 分析&#xff1a; 1&#xff0c;首先查看该网站的结构。分析网页后可以得到&#xff1a; 我们需…

Linux64位steam,这下没得玩了! Steam无奈抛弃Linux用户

众所周知&#xff0c;Linux被公认为最安全的操作系统&#xff0c;近日&#xff0c;网络有消息传出Linux发行版Ubuntu确认将从今年下半年的19.10版本开始不再支持传统32位&#xff0c;而仅支持64位&#xff0c;而没有了32位系统的存在&#xff0c;许多游戏将不能支持。据了解&am…