linux搜索文件内容并替换方法

linux中vi/vim 中可以使用 :s 命令来替换字符串

形式

:s/str1/str2/ //用字符串 str2 替换行中首次出现的字符串 str1:s/str1/str2/g //用字符串 str2 替换行中所有出现的字符串 str1:.,$ s/str1/str2/g //用字符串 str2 替换正文当前行到末尾所有出现的字符串 str1:1,$ s/str1/str2/g //用字符串 str2 替换正文中所有出现的字符串 str1:g/str1/s//str2/g //功能同上

g 放在命令末尾,表示对搜索字符串的每次出现进行替换;不加 g,表示只对搜索字符串的首次出现进行替换;g 放在命令开头,表示对正文中所有包含搜索字符串的行进行替换操作。

实例

:s/tomcatlog/javalog/ //替换当前行第一个 tomcatlog 为 javalog :s#tomcatlog/#javalog/# //替换当前行第一个 tomcatlog/ 为 javalog/,可以用#符号隔开:s/tomcatlog/javalog/g //替换当前行所有 tomcatlog 为 javalog :g/tomcatlog/s//javalog/ //替换每一行的第一个 tomcatlog 为 javalog :g/tomcatlog/s//javalog/g //替换每一行中所有 tomcatlog 为 javalog :n,$s/tomcatlog/javalog/ //替换第 n 行开始到最后一行中每一行的第一个 tomcatlog 为 javalog :n,$s/tomcatlog/javalog/g //替换第 n 行开始到最后一行中每一行所有 tomcatlog 为 javalog (n 为数字,若 n 为 .,表示从当前行开始到最后一行)