在工作中碰到这样一个问题,如何在Linux中对文件内容进行全局替换。最常用是在vi模式下使用命令,使用方法如下文。
语法
1 | [addr]s/源字符串/目的字符串/[option] |
[addr]: 表示检索范围,省略时表示当前行。
1,20 :表示从第1行到20行;
% :表示整个文件,同“1,$”;
.,$ :从当前行到文件尾;
s :表示替换操作
[option]:表示操作类型
g 表示全局替换;
c 表示进行确认;
p 表示替代结果逐行显示(Ctrl + L恢复屏幕);
省略option时仅对每行第一个匹配串进行替换;
如果在源字符串和目的字符串中出现特殊字符,需要用”\”转义
示例
1 | :s/vivian/sky/ 替换当前行第一个 vivian 为 sky |