1.基本语法
sed [option] '地址定位 + sed指令' filename
2.sed常用选项
-r: 启用正则表达式
-e:执行多个脚本 ,例如: -e 'script01' -e 'script02' -e 'script03'
-n:默认情况sed命令有标准输出,加上-n选项抑制sed标准输出
-i:将标准输出写回源文件
3.地址定位(模式匹配)
决定对哪些行进行编辑
1)空模式,表示所有行都执行动作:sed 'p' 1.txt
2) 用行号进行地址定位
▶
输出单独行
sed -n '1p' 1.txt # 输出第一行
sed -n '$p' 1.txt # 输出最后一行
▶
输出范围行
sed -n '1,5p' 1.txt # 输出第一行到第五行
sed -n '1,+3p' 1.txt #输出从第1行起,往后数3行
▶
输出间隔行
sed -n '1~2p' 1.txt # 输出从第一行开始,每数两行输出一次 (输出奇数行)
3.正则地址定位
1.满足正则表达式的行:/正则表达式/
2.满足正则表达式范围的行:/正则表达式1/,/正则表达式2/
4.sed常用指令
p:打印
d:delete
!:放在命令前表示取反
1)p:打印
sed -n '1p' 1.txt 打印第一行内容
2)d:删除
sed '1d' 1.txt 删除第一行内容
3)i:插入行
sed '/^root/i\hello' /etc/passwd
4)a:追加行
sed '/^root/a\hello' /etc/passwd
5)c:替换行
sed '/^root/c\hello' /etc/passwd
6) s:替换
g:全局替换
i:忽略大小写
n:第n个被匹配到的(n表示数字)
&:表示引用匹配到的整个字符串
7)y:转换的命令,【对应转换】
8) r:将一个文件的内容添加到另一个文件的行出
9)w:将地址指定的范围内的行另存到其他文件中
不存在则创建,存在则会覆盖原内容
子命令不会修改源文件,修改源文件,需要加-i选项