Linux 三剑客之sed命令总结

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
3sed 删除,删掉包含关键词的行
    sed '/^$/d' test.txt  ## 删除空行

4sed –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行开始收入后面的字符串


原文地址:https://www.cnblogs.com/jpinsz/p/10774867.html