在UNIX/Linux中的vi/vim编辑中可以使用 :s 命令来替换字符串。以前只会使用一种格式来全文替换,今天发现该命令有很多种写法,而且作用十分强大,还有很多需要学习,记录几种常用的在此,方便以后查询。
:s/procat/law/ 替换当前行第一个 procat为 law;
:s/procat/law/g 替换当前行所有 procat为 law;
:n,$s/procat/law/ 替换第n行开始到最后一行中每一行的第一个procat为law;
:n,$s/procat/law/g 替换第n行开始到最后一行中每一行所有 procat为law,其中n 为数字,若n为“.”,则表示从当前行开始到最后一行;
:%s/procat/law/(等同于 :g/procat/s//law/) 替换每一行的第一个procat为law;
:%s/procat/law/g(等同于 :g/procat/s//law/g) 替换每一行中所有procat为law;
:%s/procat/law/gc(等同于 :g/procat/s//law/gc) 一查询方式替换每一行中所有procat为law;
若替换字符串中需要替换“/”,则不能使用“/”在命令中作分割符,此时可以可以使用“#”作为分隔符,当命令中出现“#”,则“/”不再被系统认作分隔符
:s#procat/#law/# 替换当前行第一个procat/为 law/