Sed!

[选项]

a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~

c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!

d :删除,因为是删除啊,所以 d 后面通常不接任何咚咚;

i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);

p :打印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行~

s :取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!

=================================================================

实例1:

要求把/etc/passwd中sbin/nologin替换成1111/2222

[root@localhost ~]# sed 's#sbin/nologin#1111/2222#g' /etc/passwd

扫描二维码关注公众号,回复: 7165227 查看本文章

实例2:取出/etc/passwd中前三行的用户名及登录类型

[root@localhost ~]# nl /etc/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

[root@localhost ~]# sed -nr '1,3 s/(.*)(:.*){5}:(.*)/\1 \3/gp' /etc/passwd
root /bin/bash
bin /sbin/nologin
daemon /sbin/nologin

实例3:取出ifconfig中的ens33的Ip

[root@localhost ~]# ifconfig ens33
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.200.115 netmask 255.255.255.0 broadcast 192.168.200.255
inet6 fe80::656c:1296:c062:6af7 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:c3:ed:86 txqueuelen 1000 (Ethernet)
RX packets 233993 bytes 330363369 (315.0 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 74549 bytes 5354994 (5.1 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

[root@localhost ~]# ifconfig ens33 | sed -nr 's/.*t (.*) n.*/\1/gp'
192.168.200.115

实例4:取出 /etc/passwd中前5行最后一个数

[root@localhost ~]# sed -n '1,5 s/\(.*\)\(.\)/\2/gp' /etc/passwd
h
n
n
n
n

猜你喜欢

转载自www.cnblogs.com/cxm123123form/p/11454137.html
sed