1. vim
vim 编辑文件时经常会出现向改动文件中某个变量名的情况,但是该变量名分布在文件各个地方,手动去改非常麻烦,可以使用 vim 的字符串替换命令。
示例
:%s/old/new/g
上述命令可以将整个文件中的字符 old
替换为字符 new
。
详解
语法格式为:
:[addr]s/源字符串/目的字符串/[option]
[addr] 表示检索范围,省略时表示当前行。
1,20
:表示从第1行到20行%
:表示整个文件,同1,$
.,$
:从当前行到文件尾
s : 表示替换操作
[option] : 表示操作类型
- g 表示全局替换;
- c 表示进行确认
- p 表示替代结果逐行显示(Ctrl + L恢复屏幕);
- 省略option时仅对每行第一个匹配串进行替换;
- 如果在源字符串和目的字符串中出现特殊字符,需要用”\”转义
2. sed
sed 是一个管道命令,可以分析 standard input,还可以将数据进行替换、删除、新增、选取特定行等功能。下面介绍 sed 的用法,再来聊其用途。
语法格式:
sed [-nefr] [动作]
- -n :使用安静模式,只有经过处理的行才会被输出到屏幕
- -f :直接动作写在文件中,-f filename 可以执行 filename 内的动作
- -r :动作支持扩展正则表达式语法
- -i :直接修改读取的文件内容而不是输出
动作说明:
[n1[,n2]] function
function 有下面参数:
- a :新增
- d:删除
s:替换
sed -i 's/old/new/g' test.txt
上述语句可以将 test.txt 文件中的所有 old 字符替换为 new 字符