[macOS-Linux]_[Vi-Sed]_[替换文本的快捷方式]

场景

  1. 我们在远程连接服务器修改配置文件时, 有时候需要查找替换不正确的文本, 最慢的方式就是vi 文件, 之后移动方向键查找到某个关键字中, 接着按下i进行删除和粘贴. 如果需要替换的文件多了, 则需要一个个文件打开并挨个替换, 容易出错还费时间, 有没有更好的办法?

说明

vi

  1. 准备工作: vi显示行号是:set nu, 这样只是在本次编辑时显示, 如果要永久显示, 那么需要找到vimrc配置文件并在一空行上加入set nu, 在macOS系统上, 路径是~/.vimrc, 如果不存在, 那么使用vi ~/.vimrc来直接新建一个配置文件.

  2. vi有自己的查找替换命令, 也有大小写敏感的命令, 如果能利用vi自带的命令替换文本, 无疑会快很多.

方式1: 第一次替换, 我们需要在某个文件里挨个查找文本,确认之后再逐个替换.

步骤1: 尾行模式下输入:set noic:

	:set ic # 忽略大小写敏感
	:set noic # 大小写敏感

步骤2: 命令模式下输入:/要查找的文本, 比如查找macOS,:/macOS, 找到一个后:s/macOS/Windows, 把查找到第一个macOS替换为Windows. 这样逐步把所有匹配字符串替换完. 尾行模式下输入n向前搜索, 大写N向后搜索.

:s/macOS/Windows

方式2: 第二次替换, 确认第一次查找方式没错之后, 直接用替换全部到方式来一次过替换单个文件里的所有匹配字符串.

步骤1: 进入尾行模式

:%s/macOS/Windows/g

方式3: 替换当前行的所有敏感字符, 比如/ 替换为//, 这时候就需要\来转义.

:s/\/\//\//g

注意: 如果当前步骤替换错了, 可以在命令模式下按u, 撤销上一步操作.

sed

  1. vi的替换已经够快了, 有没有更快的方式, 比如不需要打开文本, 直接指定文本路径替换, 那就更快了. 有的, 使用sed命令. 这个操作会直接修改sign-code.sh文件, 修改之前会生成一份原有文件的备份为sign-code.she, 这样就不怕改错啦.
sed -ie "s/old string/new string/g"  sign-code.sh

参考

vi 的文本替换
macOS 与 Linux 下 Vim 配置文件
Linux之vi三种模式常用操作的学习
Vim查找忽略大小写

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Peter(阿斯拉达)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值