vim or sed字符串批量替换

时间:2023-01-29 09:01:28

1、vi批量替换

:%s/str1/str2/
用字符串 str2 替换文件每行首次出现的字符串 str1
:%s/str1/str2/g
用字符串 str2 替换所有出现的字符串 str1
:%s#/usr/bin#/bin#g
把文件中所有路径/usr/bin换成/bin。这是为了区别反斜杠吧!用#区分!
:10,20s/^/ / 将第10行至第20行资料的最前面插入1个空格
:%s/ /^M/g 将空格替换成回车,用CTRL+V CTRL+M输入^M表示回车。
:%s/\s\+$// 删除行尾多余的空格
命令前面指明范围是“%”,所以这会作用于整个文件。“substitute”命令的样式是“\s\+$”。这表示行末($)一个或者多个(\+)空格(\s)

2、sed批量替换

sed -i ‘s/str1/str2/’ file.txt
用字符串 str2 替换每行首次出现的字符串 str1
sed -i ‘s/str1/str2/g’ file.txt
用字符串 str2 替换所有出现的字符串 str1

3、sed删除指定行

a、sed -i ‘/[mnt]/,5d’ a.txt
b、sed -i ‘/\[mnt\]/,/\#\[end\]/d’ 1.txt