一 删除 d命令
1.删除指定行
sed '1d' 文件名
解释:这里可以把1换成任意行,然后删除任意指定的行,
2.删除指定范围内行
sed '1,5d' 文件名
3.删除指定行以外其他行
sed '3!d' 文件名
4.删除最后一行
sed '$d' 文件名
5.删除空行
sed '/^$/d' 文件名
二 查找替换 s命令
1.替换每一行第一个匹配到的字符串
sed 's/lalala/LALALA' 文件名
解释:如果这里每行有3个lalala,则只有第一次出现的lalala会被替换成LALALA
2.替换每一行匹配到最多出现2次的字符串
sed 's/lalala/LALALA/2' 文件名
解释:如果这里每行有2个以上lalala,则前两个出现的lalala会被替换成LALALA,剩下的不会
3.替换每行所有匹配到的字符串
sed 's/lalala/LALALA/g' 文件名
解释:这里不管每行出现几个lalala都会被替换成LALALA
4.只替换开头匹配到的字符串
sed 's/^lalala/LALALA/' 文件名
解释:只替换第一个,效果同sed 's/lalala/LALALA' 文件名
三 字符转换 y命令
注意替换前后的字符长度应相同,是将字符逐个替换的命令
1.将123替换成ABC
sed 'y/123/ABC/' 文件名
这里不是将123替换成ABC,而是将1替换成A,2替换成B,3替换成C
四 插入 i命令 a命令
区别:i为在匹配行之前插入,a为在匹配行之后插入
1.在某一行前插入文本
sed '2 i lalala' 文件名
解释:在第二行前插入lalala,lalala单独占一行,是第二行,原来的第二行变成第三行
2.在某一行后插入文本
sed '2 a lalala' 文件名
解释:在第二行后插入lalala,lalala单独占一行,是第三行,原来的第二行还是第二行,原来的第三行变成第四行
3.在匹配行的上一行插入文本
sed '/lalala/i\LALALA' 文件名
解释:在出现lalala的行的上一行插入LALALA,LALALA单独占一行
五 读入文本 r命令
1.将某文本内容读取后插入到匹配行之后
sed '/^$/r etc/passwd' 文件名
解释,将etc/passwd文件的内容读取后插入到空行后
六 打印 p命令
p命令用来打印,-n参数用来简化输出,不现实未匹配的行
1.sed -n 's/lalala/LALALA/p' 文件名
解释:只打印包含lalala的行并将lalala替换为LALALA
七 写文件
sed命令本身不会修改文件本身的内容,只是将内容修改并输出到屏幕上,因此将修改的部分保存下来的方法有3种
1.重定向
sed 's/lalala/LALALA/g' 文件名1 > 文件名2
解释:将文件1的lalala全部替换成LALALA后保存为文件2
2.-i参数
sed -i ‘1d’ 文件名
解释:删除第一行并保存,且屏幕上无输出内容
3.w命令
sed -n '1,2 w 文件名2' 文件名1
解释:将文件名1的前两行保存到文件名2中,且不在屏幕上输出匹配内容