[root@server3 mnt]# cat -n passwd
1 root:x:0:0:root:/root:/bin/bash
2 bin:x:1:1:bin:/bin:/sbin/nologin
3 daemon:x:2:2:daemon:/sbin:/sbin/nologin
4 rooot
5 rooooot
6 Root
7 ROOOT
8 roooooot.
9 test
10
11
12 tes0t.
13 adm:x:3:4:adm:/var/adm:/sbin/nologin.
1.删除与增加
删除2-5行
[root@server3 mnt]# cat -n passwd | sed '2,5d'
1 root:x:0:0:root:/root:/bin/bash
6 Root
7 ROOOT
8 roooooot.
9 test
10
11
12 tes0t.
13 adm:x:3:4:adm:/var/adm:/sbin/nologin.
增加字符
[root@server3 mnt]# cat -n passwd | sed '2a are you ok'
1 root:x:0:0:root:/root:/bin/bash
2 bin:x:1:1:bin:/bin:/sbin/nologin
are you ok
3 daemon:x:2:2:daemon:/sbin:/sbin/nologin
4 rooot
5 rooooot
6 Root
7 ROOOT
8 roooooot.
9 test
10
11
12 tes0t.
13 adm:x:3:4:adm:/var/adm:/sbin/nologin.
增加两行字
[root@server3 mnt]# cat -n passwd | sed '2a are you ok?
> fine'
1 root:x:0:0:root:/root:/bin/bash
2 bin:x:1:1:bin:/bin:/sbin/nologin
are you ok?
fine
3 daemon:x:2:2:daemon:/sbin:/sbin/nologin
4 rooot
5 rooooot
6 Root
7 ROOOT
8 roooooot.
9 test
10
11
12 tes0t.
13 adm:x:3:4:adm:/var/adm:/sbin/nologin.
2.以行为单位的替换与显示功能
将2-5行替换成sorry
[root@server3 mnt]# cat -n passwd | sed '2,5c sorry'
1 root:x:0:0:root:/root:/bin/bash
sorry
6 Root
7 ROOOT
8 roooooot.
9 test
10
11
12 tes0t.
13 adm:x:3:4:adm:/var/adm:/sbin/nologin.
仅列出文件内的6-9行
[root@server3 mnt]# cat -n passwd | sed -n '6,9p' #若不加n,6-9行会重复输出
6 Root
7 ROOOT
8 roooooot.
9 test
3.部分数据的查找并替换的功能
sed的查找个查找格式如下
sed 's/要被替换的字符串/新的字符串/g'
通过查找来显示出自己的ip
[root@server3 mnt]# ip addr | grep eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
inet 172.25.8.3/24 brd 172.25.8.255 scope global eth0
[root@server3 mnt]# ip addr | grep 'eth0$'
inet 172.25.8.3/24 brd 172.25.8.255 scope global eth0
[root@server3 mnt]# ip addr | grep 'eth0$' | sed 's/inet//g'
172.25.8.3/24 brd 172.25.8.255 scope global eth0
[root@server3 mnt]# ip addr | grep 'eth0$' | sed 's/inet//g' |sed 's/brd.*$//g'
172.25.8.3/24