分类: 系统运维
2020-12-27 19:16:56
vi/vim 中可以使用 :s 命令来替换字符串。
:s/error/wrong/:替换当前行第一个error为wrong;
:s/error/wrong/g:替换当前行所有error为wrong;
:n,$s/error/wrong/:替换第n行开始到最后一行中每一行的第一个error为wrong;
:n,$s/error/wrong/g:替换第n行开始到最后一行中每一行所有error为 wrong;
注:n为数字,表示第n行开始;若n为 .,表示从当前行开始。
:%s/error/wrong/:(等同于 :g/error/s//wrong/),替换每一行的第一个 error为wrong;
:%s/error/wrong/g:(等同于 :g/error/s//wrong/g),替换每一行中所有 error为wrong;
注:可以使用#作为分隔符,此时中间出现的/不会作为分隔符。
:s#error/#wrong/#:替换当前行第一个 error/为 wrong/;
:%s#/usr/bin#/bin#g:可以把文件中所有路径/usr/bin换成/bin
格式: sed -i "s/查找字段/替换字段/g" `grep 查找字段 -rl 路径` 文件名
-i:表示直接修改文件
-r:表示搜索子目录
-l:表示输出匹配的文件名
s表示替换,d表示删除
示例:sed -i "s/well/good/g" test.txt
sed 's/^[ ]*//g' filename
sed 's/^ *//g' filename
sed 's/^[[:space:]]*//g' filename
行后:sed 's/pattern/&\n/g' filename
行前:sed 's/pattern/\n&/g' filename
&代表pattern
sed -e "s/$var1/$var2/g" filename
sed -i '1 i\插入字符串' filename
sed -i '$ a\插入字符串' filename
sed -i '/pattern/ i "插入字符串"' filename
sed -i '/pattern/ a "插入字符串"' filename
grep -v ^# filename | sed /^[[:space:]]*$/d | sed /^$/d