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 43
7、特定行数插入字符串
例子:如果遇到连接SSH反应慢的问题,请在所有被管理的机器上提前执行如下命令:
sed -ir '13iUseDNS no GSSAPIAuthentication no ' /etc/ssh/sshd_config
/etc/init.d/sshd reload
解析:-ir 将目标文件‘/etc/ssh/sshd_config’备份为/etc/ssh/sshd_configr,然后‘13i'是13行开始收入后面的字符串