sed
### sed ###
1、关键字取行
sed -n '/jpinsz/p' test.txt
sed -n '/^d/p' test.txt
2、根据行数取行
sed -n '2,5p' test.txt
[root@JP1 tmp]# sed -n '2,5p' test.txt
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
3、sed 删除,删掉包含关键词的行
sed '/^$/d' test.txt ## 删除空行
4、sed –i 直接修改文件内容
[root@JP1 tmp]# cat jp.txt
i am jpinsz
jpinsz
jpinsz test
good boy
[root@JP1 tmp]# sed -i '/jpinsz/d' jp.txt
[root@JP1 tmp]# cat jp.txt
good boy
5、内容替换
[root@JP1 tmp]# sed -n 's#kk#HH#gp' a
HH qq HH
HH jp qq HH
HH qq QQ HH
HH QQ QQ HH HH
[root@JP1 tmp]# sed -n 's#HH#BB#gp' a > b
[root@JP1 tmp]# cat b
kk qq BB
kk jp qq BB
kk qq QQ BB
kk QQ QQ BB kk [root@JP1 tmp]# sed -n 's#HH#AA#2p' test2 HH qq AA HH jp qq AA HH qq QQ AA HH QQ QQ AA HH
[root@JP1 tmp]# ifconfig enp0s3|sed -nr 's#^.*net (.*) net.*$#\1#gp'
10.0.0.13
6、取行数
[root@JP1 tmp]# sed -n "$=" /etc/passwd
437、特定行数插入字符串 例子:如果遇到连接SSH反应慢的问题,请在所有被管理的机器上提前执行如下命令: sed -ir '13iUseDNS no\nGSSAPIAuthentication no\n' /etc/ssh/sshd_config /etc/init.d/sshd reload 解析:-ir 将目标文件‘/etc/ssh/sshd_config’备份为/etc/ssh/sshd_configr,然后‘13i'是13行开始收入后面的字符串