首页 > 系统相关 >Linux vi替换字符串

Linux vi替换字符串

时间:2023-09-27 17:47:40浏览次数:34  
标签:str2 vivian vi str1 sky Linux 字符串 替换

 

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 放在命令开头,表示对正文中所有包含搜索字符串的行进行替换操作。

 

 

http://banderson.blog.163.com/blog/static/7462337201010122916301/

标签:str2,vivian,vi,str1,sky,Linux,字符串,替换
From: https://www.cnblogs.com/brithToSpring/p/17733259.html

相关文章

  • [转载] linux下 GCC编译链接静态库&动态库
    转载自:https://www.cnblogs.com/thechosenone95/p/10605172.html#_label0静态库有时候需要把一组代码编译成一个库,这个库在很多项目中都要用到,例如libc就是这样一个库,我们在不同的程序中都会用到libc中的库函数(例如printf),也会用到libc中的变量(例如以后要讲到的environ变量)。......
  • linux上如何使用docker部署前后端分离项目(含部署多个前端页面的方法)
    (目录)前言使用前一段时间写的前后端分离开发的简单小项目,确保本地可以启动部署所需镜像汇总mysql镜像2.后端工程自定义镜像3.nginx镜像<fontcolor=red>下面介绍部署过程</font>一、mysql镜像(1)拉取mysql镜像选择使用的mysql版本,我用的是8.0.33dockerpullmysql......
  • Sovit2D组态设计 Web Scada烟气脱硫工艺流程
    前言我国是燃煤大国,燃煤排放的SO₂成为影响我国城市空气质量的主要污染物。因此,锅炉烟气脱硫是减排SO₂的重要手段。建设背景在节能减排的大形势下,钢厂、电厂等烟气脱硫是完成二氧化硫减排任务的重点工作之一。烟气脱硫系统具有很高的复杂性,目前很多脱硫系统出现运行故障多、不能......
  • 使用 Spring 3 来创建 RESTful Web Services
    引言RoyFielding是HTTP1.0和1.1标准的主要作者之一,2000年,他在他的博士论文中首次提出了REST。通过REST风格体系架构,请求和响应都是基于资源表示的传输来构建的。资源是通过全局ID来标识的,这些ID一般使用的是一个统一资源标识符(URI)。客户端应用使用HTT......
  • Spring Jax-Ws. Build and consume Web Services – part 1
    SpringJax-Ws.BuildandconsumeWebServices–part 1Postedon July12,2012MarcoFollowingtheofficialguide,atthechapter19we’llfindtheSpringsupportaboutwebservice(honestly,coulditmiss?).InthisarticleI’lldescribethe......
  • Go - receiving from an empty channel
     packagemainimport("fmt""sync""time")varworkers=3funcprocessItem(input<-chanint,outputchan<-int,wg*sync.WaitGroup){for{fmt.Println("=")in:=<-i......
  • Sovit2D组态设计 Web Scada烟气脱硫工艺流程
    前言我国是燃煤大国,燃煤排放的SO₂成为影响我国城市空气质量的主要污染物。因此,锅炉烟气脱硫是减排SO₂的重要手段。建设背景在节能减排的大形势下,钢厂、电厂等烟气脱硫是完成二氧化硫减排任务的重点工作之一。烟气脱硫系统具有很高的复杂性,目前很多脱硫系统出现运行故障多、......
  • Vue3 - provide 提供的异步数据 inject 得到的数据 undefined 或 null
    如下所示,父组件(祖先组件)通过provide函数向所有后代组件传递prop。但是这两个Ref类型的数据最开始没有,需要等到onMounted初始化之后才有值。此时会遇到两个问题后代组件在setup函数中或者onBeforeMount等非常周期中调用,可能获取的是undefined或者null。传递响应式......
  • 10 分钟学会Linux常用 bash命令
    目录1.基本操作1.1.文件操作1.2.文本操作1.3.目录操作1.4.SSH,系统信息&网络操作2.基本Shell编程2.1.变量2.2.字符串替换2.3.函数2.4.条件2.5.循环3.技巧4.调试1.BasicOperationsa.export显示所有的环境变量,如果你想获取某个变量的详细信息,使用echo......
  • 怎么修改linux的root@后面的名称
    场景.登录服务器,root后面的名称是随机的,想自定义名称建议,直接使用命令执行hostnamectlset-hostnamerdd-test重新连接即可生效,实际也是修改了/etc/hostname名称需要重启机子输入命令:vim/etc/hostname进入文件,修改并保存;只有重启之后,更改的主机名才可以生效。......