sed 是一个流编辑器 (stream editor),而vim 是一个交互式编辑器,理论上来讲vim 可以完成的功能 sed 都可以完成。
我们将 vim 和 sed 做一个大致的对比:
vim | sed | |
---|---|---|
i | 进入插入模式并在前面插入内容 | sed '/ab/i hello' bfile —— 匹配到’ab’后在上一行插入 |
a | 进入插入模式并在后面插入内容 | sed '/ab/a hello' bfile —— 匹配到’ab’后在下一行插入 |
c | 修改内容 | sed '/ab/c hello' bfile —— 匹配到’ab’后修改一整行的内容 |
d | 删除内容 | sed '/ab/d' bfile —— 匹配到’ab’后删除模式空间中一整行的内容 |
r | 读取内容(:r ) | sed '/ab/r afile' bfile —— 匹配到’ab’后读入另一个文件的内容 |
w | 写入内容(:w ) | sed '/ab/w afile' bfile —— 匹配到’ab’后写入另一个文件 |
s | 整行查找替换内容(:s/old/new/g ) | sed 's/pass/bass/g' new.txt —— 查找到’pass’后替换为bass |
注:bfile 是一个测试文件
内容为
b
a
aa
aaa
ab
abb
abbb
new.txt
abcdefg
higabcd
lmnoabd
password
passsword
passwordnewpass
pasword
passhhhew