zoukankan      html  css  js  c++  java
  • linux系统中sed删除指定的行

    1、测试数据

    [root@centos79 test]# ls
    a.txt
    [root@centos79 test]# cat a.txt
    3 4 5
    d g 3
    s g 8
    k s g
    2 5 d
    s c w
    a r t
    e 4 s

    2、删除第二行

    [root@centos79 test]# cat a.txt
    3 4 5
    d g 3
    s g 8
    k s g
    2 5 d
    s c w
    a r t
    e 4 s
    [root@centos79 test]# sed '2d' a.txt
    3 4 5
    s g 8
    k s g
    2 5 d
    s c w
    a r t
    e 4 s

    2、删除第2行到第5行

    [root@centos79 test]# cat a.txt
    3 4 5
    d g 3
    s g 8
    k s g
    2 5 d
    s c w
    a r t
    e 4 s
    [root@centos79 test]# sed '2,5d' a.txt
    3 4 5
    s c w
    a r t
    e 4 s

    3、删除第2行和第5行

    [root@centos79 test]# cat a.txt
    3 4 5
    d g 3
    s g 8
    k s g
    2 5 d
    s c w
    a r t
    e 4 s
    [root@centos79 test]# sed '2d; 5d' a.txt
    3 4 5
    s g 8
    k s g
    s c w
    a r t
    e 4 s

    4、删除2到5行和第7行

    [root@centos79 test]# cat a.txt
    3 4 5
    d g 3
    s g 8
    k s g
    2 5 d
    s c w
    a r t
    e 4 s
    [root@centos79 test]# sed '2,5d; 7d' a.txt
    3 4 5
    s c w
    e 4 s

    5、删除最后一行

    [root@centos79 test]# cat a.txt
    3 4 5
    d g 3
    s g 8
    k s g
    2 5 d
    s c w
    a r t
    e 4 s
    [root@centos79 test]# sed '$d' a.txt
    3 4 5
    d g 3
    s g 8
    k s g
    2 5 d
    s c w
    a r t

    6、删除最后两行

    [root@centos79 test]# cat a.txt
    3 4 5
    d g 3
    s g 8
    k s g
    2 5 d
    s c w
    a r t
    e 4 s
    [root@centos79 test]# a=$(sed -n "$=" a.txt )
    [root@centos79 test]# echo $a
    8
    [root@centos79 test]# let b=a-2+1
    [root@centos79 test]# sed $(($b)),$(($a))d a.txt
    3 4 5
    d g 3
    s g 8
    k s g
    2 5 d
    s c w

    7、删除奇数行

    [root@centos79 test]# cat a.txt
    3 4 5
    d g 3
    s g 8
    k s g
    2 5 d
    s c w
    a r t
    e 4 s
    [root@centos79 test]# sed '1~2d' a.txt
    d g 3
    k s g
    s c w
    e 4 s

    8、删除偶数行

    [root@centos79 test]# cat a.txt
    3 4 5
    d g 3
    s g 8
    k s g
    2 5 d
    s c w
    a r t
    e 4 s
    [root@centos79 test]# sed '2~2d' a.txt
    3 4 5
    s g 8
    2 5 d
    a r t

    9、删除包含3的行

    [root@centos79 test]# cat a.txt
    3 4 5
    d g 3
    s g 8
    k s g
    2 5 d
    s c w
    a r t
    e 4 s
    [root@centos79 test]# sed '/3/d' a.txt
    s g 8
    k s g
    2 5 d
    s c w
    a r t
    e 4 s

    10、删除包含3的行或者包含s的行

    [root@centos79 test]# cat a.txt
    3 4 5
    d g 3
    s g 8
    k s g
    2 5 d
    s c w
    a r t
    e 4 s
    [root@centos79 test]# sed '/3|s/d' a.txt
    2 5 d
    a r t

    11、删除同时含有3和4的行

    [root@centos79 test]# cat a.txt
    3 4 5
    d g 3
    s g 8
    k s g
    2 5 d
    s c w
    a r t
    e 4 s
    [root@centos79 test]# sed '/3.*4|4.*3/d' a.txt
    d g 3
    s g 8
    k s g
    2 5 d
    s c w
    a r t
    e 4 s

    12、删除以s开头的行

    [root@centos79 test]# cat a.txt
    3 4 5
    d g 3
    s g 8
    k s g
    2 5 d
    s c w
    a r t
    e 4 s
    [root@centos79 test]# sed '/^s/d' a.txt
    3 4 5
    d g 3
    k s g
    2 5 d
    a r t
    e 4 s

    13、删除以s开头,同时以8结尾的行

    [root@centos79 test]# cat a.txt
    3 4 5
    d g 3
    s g 8
    k s g
    2 5 d
    s c w
    a r t
    e 4 s
    [root@centos79 test]# sed '/^s.*8$/d' a.txt
    3 4 5
    d g 3
    k s g
    2 5 d
    s c w
    a r t
    e 4 s

    14、删除以g结尾的行

    [root@centos79 test]# cat a.txt
    3 4 5
    d g 3
    s g 8
    k s g
    2 5 d
    s c w
    a r t
    e 4 s
    [root@centos79 test]# sed '/g$/d' a.txt
    3 4 5
    d g 3
    s g 8
    2 5 d
    s c w
    a r t
    e 4 s

    15、删除2到4行以外的行

    [root@centos79 test]# cat a.txt
    3 4 5
    d g 3
    s g 8
    k s g
    2 5 d
    s c w
    a r t
    e 4 s
    [root@centos79 test]# sed '2,4!d' a.txt
    d g 3
    s g 8
    k s g

    16、删除包含数字的行

    [root@centos79 test]# cat a.txt
    3 4 5
    d g 3
    s g 8
    k s g
    2 5 d
    s c w
    a r t
    e 4 s
    [root@centos79 test]# sed '/[0-9]/d' a.txt
    k s g
    s c w
    a r t

    17、删除包含字母的行

    [root@centos79 test]# cat a.txt
    3 4 5
    d g 3
    s g 8
    k s g
    2 5 d
    s c w
    a r t
    e 4 s
    [root@centos79 test]# sed '/[a-z]/d' a.txt
    3 4 5

    18、删除包含大写字母的行

    [root@centos79 test]# cat a.txt
    3 4 5
    d g 3
    s g 8
    k s g
    2 5 d
    s c w
    a r t
    s c E
    a R t
    e 4 s
    [root@centos79 test]# sed '/[A-Z]/d' a.txt
    3 4 5
    d g 3
    s g 8
    k s g
    2 5 d
    s c w
    a r t
    e 4 s

    19、删除同时包含大写字母和小写字母的行

    [root@centos79 test]# cat a.txt
    3 4 5
    d g 3
    s g 8
    k s g
    2 5 d
    s c w
    a r t
    s c E
    a R t
    e 4 s
    [root@centos79 test]# sed '/[a-zA-Z]/d' a.txt
    3 4 5

    20、同时删除以a或者d开头的行

    [root@centos79 test]# cat a.txt
    3 4 5
    d g 3
    s g 8
    k s g
    2 5 d
    s c w
    a r t
    s c E
    a R t
    e 4 s
    [root@centos79 test]# sed '/^[ad]/d' a.txt
    3 4 5
    s g 8
    k s g
    2 5 d
    s c w
    s c E
    e 4 s

    21、删除不是以a或者d开头的行

    [root@centos79 test]# cat a.txt
    3 4 5
    d g 3
    s g 8
    k s g
    2 5 d
    s c w
    a r t
    s c E
    a R t
    e 4 s
    [root@centos79 test]# sed '/^[ad]/!d' a.txt
    d g 3
    a r t
    a R t
  • 相关阅读:
    Linux磁盘系统——管理磁盘的命令
    Linux磁盘系统——磁盘系统简介
    LinuxShell——内嵌命令
    安装PHP出现make: *** [sapi/cli/php] Error 1 解决办法
    Linux常用命令
    Linux文件系统及文件类型
    MySQL查询语句
    Python随手记—各种方法的使用
    MySQL架构及SQL语句
    Python笔记记录
  • 原文地址:https://www.cnblogs.com/liujiaxin2018/p/14987772.html
Copyright © 2011-2022 走看看