Linux vim全局替换的实现方法

 更新时间:2023年08月25日 08:39:27   作者:bluewelkin  
这篇文章主要介绍了Linux vim全局替换的实现方法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

Linux vim全局替换

Linux命令:vi全局替换方法

语法为 :[addr]s/源字符串/目的字符串/[option]

全局替换命令为::%s/源字符串/目的字符串/g

[addr]: 表示检索范围,省略时表示当前行。

  • 如:“1,20” :表示从第1行到20行;
  • “%” :表示整个文件,同“1,$”;
  • “. ,$” :从当前行到文件尾;

s :表示替换操作

[option] :表示操作类型 

  • 如:g 表示全局替换;
  • c 表示进行确认
  • p 表示替代结果逐行显示(Ctrl + L恢复屏幕);
  • 省略option时仅对每行第一个匹配串进行替换;
  • 如果在源字符串和目的字符串中出现特殊字符,需要用”\”转义

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/

vim替换和查找

基本查找和替换

在Vim中,可以使用 :substitute(:s) 命令来查找和替换文本。

要在Vim中运行命令,必须处于 normal 模式,这是启动编辑器时的默认模式。 要从其他任何模式返回 normal 模式,只需按 Esc 键。

替换命令的一般形式如下:

:[range]s/{pattern}/{string}/[flags] [count]

该命令在 [range] 中的每一行中搜索 {pattern} ,并将其替换为 {string} 。 是与命令 [count] 相乘的正整数。

如果未给出 [range] [count] ,则仅替换当前行中找到的 pattern 。 当前行是光标所在的行。

range确定范围,不写默认为当前行。

%         # 表示整个文件内容
.         # 表示当前行
$         # 表示最后一行
m,n       # 表示从第m行到第n行
,n        # 表示从当前行到第n行
n,        # 表示从第n行到当前行
n         # 指定行
+n        # 表示当前行之后的n行

flags为替换标志位,默认为指定范围内的行的第一次匹配的位置,帮助文档:h s_flags

常用标志如下:

g: global,表示在指定范围内执行全局操作,替换所有匹配项
c: confirm,可以确认或拒绝修改
n: number,报告匹配到的次数,不替换,可用来查询匹配次数
i: 执行不区分大小写的替换
I: 执行区分大小写的替换
e: 防止替换失败时显示错误消息

单行查找后替换

  • :s/{pattern}/{string}/gc 单行一个一个确认替换
  • :%s/{pattern}/{string}/gc 范围整个页面一个一个确认替换
  • :m,ns/str1/str2/ 替换第 n 行开始到最后一行中每一行的第一个 str1 为 str2

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 服务器Centos部署MySql并连接Navicat过程详解

    服务器Centos部署MySql并连接Navicat过程详解

    这篇文章主要介绍了服务器Centos部署MySql并连接Navicat过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • CentOS 5.4下的Memcache安装步骤(Linux+Nginx+PHP+Memcached)

    CentOS 5.4下的Memcache安装步骤(Linux+Nginx+PHP+Memcached)

    CentOS 5.4下的Memcache安装步骤分享,想要配置Linux+Nginx+PHP+Memcached运行环境的朋友可以参考下
    2012-02-02
  • Linux 启动停止SpringBoot jar 程序部署Shell 脚本的方法

    Linux 启动停止SpringBoot jar 程序部署Shell 脚本的方法

    这篇文章主要介绍了Linux 启动停止SpringBoot jar 程序部署Shell 脚本的方法,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-04-04
  • Linux下connect超时处理(总结)

    Linux下connect超时处理(总结)

    这篇文章主要介绍了Linux下connect超时处理(总结),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-04-04
  • Linux /etc/passwd详解

    Linux /etc/passwd详解

    文章介绍了Linux系统/etc/passwd文件的结构和字段含义,包括用户名、密码、UID、GID、描述性信息、主目录和默认Shell,UID和GID用于识别和分配权限,描述性信息提供用户相关信息,主目录定义用户登录后的操作权限,而默认Shell则作为用户与系统的交互桥梁
    2024-12-12
  • linux下shell常用脚本命令及有关知识

    linux下shell常用脚本命令及有关知识

    大家好,本篇文章主要讲的是linux下shell常用脚本命令及有关知识,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2021-12-12
  • 搭建阿里云ecs服务器之安装图形化界面的方法

    搭建阿里云ecs服务器之安装图形化界面的方法

    这篇文章主要介绍了搭建阿里云ecs服务器之安装图形化界面的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-08-08
  • linux系统中设置定时任务的实现方式

    linux系统中设置定时任务的实现方式

    在SpringBoot中设置定时任务,需要使用@EnableScheduling注解和@Scheduled注解,配合cron表达式,在Linux系统中,使用crontab工具可设置系统级的定时任务,首先需要创建执行脚本,并赋予执行权限,然后通过crontab -e进入编辑界面
    2024-10-10
  • Linux下SFTP用户权限设置条件及实现命令

    Linux下SFTP用户权限设置条件及实现命令

    SFTP账号是基于SSH账号的,其拥有的权限是比较大的,今天主要教大家如何进行SFTP用户权限设置,感兴趣的你可不要错过了哈,希望本文知识可以帮助到你
    2013-02-02
  • linux中 关于screen 的命令详解

    linux中 关于screen 的命令详解

    本篇文章小编为大家介绍,linux中 关于screen 的命令详解。需要的朋友参考下
    2013-04-04

最新评论