sed 命令使用
主要作用是用来将数据进行选取,替换,删除,新增的命令,与vim类似
选项:
-n : 只显示经过sed处理的数据,打印到屏幕
-e: 运行多个条件同时运行
-i: 直接修改文件
-p: 打印
例子:
[root@zabbix lianxi]# cat student.txt
ID Name PHP Linux MySQL Average
1 Liming 82 95 86 87.66
2 Sc 74 96 87 85.66
3 Gao 99 83 93 91.66
#####################显示第二行数据################
[root@zabbix lianxi]# sed '2p' student.txt
ID Name PHP Linux MySQL Average
1 Liming 82 95 86 87.66
1 Liming 82 95 86 87.66
2 Sc 74 96 87 85.66
3 Gao 99 83 93 91.66
只显示第2行,需要-p与-n 结合使用
[root@zabbix lianxi]# sed -n '2p' student.txt
1 Liming 82 95 86 87.66
[root@zabbix lianxi]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 17G 1.6G 16G 9% /
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 12M 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/sda1 1014M 189M 826M 19% /boot
tmpfs 378M 0 378M 0% /run/user/0
[root@zabbix lianxi]# df -h | sed -n '2p'
/dev/mapper/centos-root 17G 1.6G 16G 9% /
#########删除2到4行,输出到屏幕
d
[root@zabbix lianxi]# sed '2,4d' student.txt
ID Name PHP Linux MySQL Average
#############在第二行前插入两行数据############
i
[root@zabbix lianxi]# sed '2i 你好 \
> 哈哈' student.txt
ID Name PHP Linux MySQL Average
你好
哈哈
1 Liming 82 95 86 87.66
2 Sc 74 96 87 85.66
3 Gao 99 83 93 91.66
##########行替换############
将第二行替换
c
[root@zabbix lianxi]# sed '2c 查无此人' student.txt
ID Name PHP Linux MySQL Average
查无此人
2 Sc 74 96 87 85.66
3 Gao 99 83 93 91.66
#######字符串替换#######
s
[root@zabbix lianxi]# sed '4s/99/55/g' student.txt
ID Name PHP Linux MySQL Average
1 Liming 82 95 86 87.66
2 Sc 74 96 87 85.66
3 Gao 55 83 93 91.66
将第4行的99替换成55
[root@zabbix lianxi]# sed -i '4s/99/55/g' student.txt
[root@zabbix lianxi]# cat student.txt
ID Name PHP Linux MySQL Average
1 Liming 82 95 86 87.66
2 Sc 74 96 87 85.66
3 Gao 55 83 93 91.66
#####同时把Liing和Gao替换成空
[root@zabbix lianxi]# sed -e 's/Liming//g ; s/Gao//g' student.txt
ID Name PHP Linux MySQL Average
1 82 95 86 87.66
2 Sc 74 96 87 85.66
3 55 83 93 91.66