基本sed命令
删除(d)
、[root@localhost ~]# cat 1 -n
1 sadasdsadjksajkdsa
2 dasl;dkaskd
3 dsakdkaskd
4 sdsa
5 aa
6 dsadasd
7
[root@localhost ~]# sed '/^aa/d' 1
sadasdsadjksajkdsa
dasl;dkaskd
dsakdkaskd
sdsa
dsadasd
[root@localhost ~]#[root@localhost ~]# sed '3d' 1
sadasdsadjksajkdsa
dasl;dkaskd
sdsa
aa
dsadasd
删除空白行
sed "/^$/d"
替换(s)
后可跟参数
n
:1-512之间的一个数字,表示第n次出现的情况进行替换
g
:全局更改
p
:打印模式空间的内容
w
:目标文件
[root@localhost ~]# cat 1
sadasdsadjksajkdsa
dasl;dkaskd
dsakdkaskd
sdsa
aa
dsadasd
[root@localhost ~]# sed 's/^aa/dd/g' 1
sadasdsadjksajkdsa
dasl;dkaskd
dsakdkaskd
sdsa
dd
dsadasd
[root@localhost ~]# sed 's/^aa/dd/;p' 1
sadasdsadjksajkdsa
sadasdsadjksajkdsa
dasl;dkaskd
dasl;dkaskd
dsakdkaskd
dsakdkaskd
sdsa
sdsa
dd
dd
dsadasd
dsadasd
& 替换元字符
表示模式匹配的范围,一般为第一个//之间的内容
[root@localhost ~]# cat 1
wo yao qu dong bei
[root@localhost ~]# sed "s/dong bei/guang dong \& bu hao wan/g" 1
wo yao qu guang dong & bu hao wan
[root@localhost ~]# sed "s/dong bei/guang dong & bu hao wan/g" 1
wo yao qu guang dong dong bei bu hao wan
追加,插入,更换
追加(a)
在原本的下方
[root@localhost ~]# cat 1
wo yao qu dong bei
[root@localhost ~]# sed '/wo/a\ ni qu ma' 1
wo yao qu dong bei
ni qu ma
插入(i)
在原本的上方
[root@localhost ~]# sed '/wo/i\ ni yao qu na' 1
ni yao qu na
wo yao qu dong bei
更换©
[root@localhost ~]# sed '/wo/c\ ni ' 1
ni
列表(l)
小写的l,用于检测是否存在不可见字符
[root@localhost ~]# cat 1
wo
sdasd
.
a
[root@localhost ~]# sed -n -e "l" 1
wo$
sdasd$
$
\t\t$
.$
a$
$
转换(y)
根据提供字符的位置来进行替换,一般用于字母大小写的替换
[root@localhost ~]# cat 1
aaa
aaa
aaa
[root@localhost ~]# sed -r '2y/a/b/' 1
aaa
bbb
aaa
打印§
[root@localhost ~]# cat 1
aaa
bbb
aaa
[root@localhost ~]# sed -r 's/a/t/g 1 p' 1
ttt
ttt
bbb
ttt
ttt
打印行号(=)
[root@localhost ~]# cat 1
aaa
bbb
aaa
[root@localhost ~]# sed -n -r "/aaa/{= ;p}" 1
1
aaa
3
aaa
下一步(n)
[root@localhost ~]# cat 1
aaa
bbb
aaa
[root@localhost ~]# sed -n -r "/aaa/{n;=;p}" 1
2
bbb
4
[root@localhost ~]# sed -n -r "/aaa/{n;p}" 1
bbb