• Linux sed


    注意:所有匹配需要用单引号

    一、获取最后一行内容

    docker images | grep "none" | sed -n '$'p

    二、获取第一行内容

    docker images | grep "none" | sed -n '1'p

    三、获取第一行到最后一行内容

    docker images | grep "none" | sed -n '1,$'p

    四、替换操作: s命令

        sed 's/book/books/' file

    五、全面替换标记g

        sed -i 's/book/books/g' file

    六、定界符

      1、以上命令中字符 / 在sed中作为定界符使用,也可以使用任意的定界符:

          sed 's:test:TEXT:g' file

          sed 's|test|TEXT|g' file

         2、定界符出现在样式内部时,需要进行转义。

            sed 's//bin//usr/local/bin/g'

    七、删除操作:d命令

      1、删除空白行:

          sed '/^$/d' file

      2、删除文件的第2行:

          sed '2d' file

      3、删除文件的第2行到末尾所有行:

          sed '2,$d' file

      4、删除文件最后一行:

          sed '$d' file

      5、删除文件中所有开头是test的行:

          sed '/^test/'d file

    八、已匹配字符串标记&

      1、正则表达式 w+ 匹配每一个单词,使用 [&] 替换它,& 对应于之前所匹配到的单词:

          echo this is a test line | sed 's/w+/[&]/g'

          [this] [is] [a] [test] [line]

      2、所有以192.168.0.1开头的行都会被替换成它自已加localhost:

          sed 's/^192.168.0.1/&localhost/' file

          192.168.0.1localhost

    九、子串匹配标记1

      1、匹配给定样式的其中一部分:

          echo this is digit 7 in a number | sed 's/digit ([0-9])/1/'

          this is 7 in a number

      2、命令中 digit 7,被替换成了 7。样式匹配到的子串是 7,(..) 用于匹配子串,对于匹配到的第一个子串就标记为 1,依此类推匹配到的第二个结果就是 2,例如:

          echo aaa BBB | sed 's/([a-z]+) ([A-Z]+)/2 1/'

          BBB aaa

      3、love被标记为1,所有loveable会被替换成lovers,并打印出来:

          sed -n 's/(love)able/1rs/p' file

  • 相关阅读:
    java多线程api
    java多线程
    java代理
    java程序员常用的linux命令
    java泛型
    java反射
    日期和时间
    java集合
    Nodejs mac版安装
    for in、each; for 、forEach、map
  • 原文地址:https://www.cnblogs.com/Presley-lpc/p/9337482.html
Copyright © 2020-2023  润新知