• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    linux sed命令互换包含指定关键字的行

    a.txt内容如下:

    111
    222
    baidu
    333
    444
    google
    555
    666

    交换包含baidu和包含google的行,得到:

    111
    222
    google
    333
    444
    baidu
    555
    666

    代码1:

    sed '/baidu/{:a;N;/google/!ba;s/\([^\n]*\)\n\(.*\)\n\(.*\)/\3\n\2\n\1/}' a.txt

    代码1的执行过程:

    代码2:

    sed '/baidu/{:a;N;/google/{s/\(^[^\n]*\)\(.*\)\(\n\)\([^\n]*$\)/\4\2\3\1/;t};ba}' a.txt 

    代码2的执行过程:

    代码1和代码2的特点:
    1、不需要事先知道baidu和google分别在第几行。
    2、不管baidu和google是否相邻,都可以正常处理。
    3、如果先出现google后出现baidu,命令需要相应的做调整。

    上一篇:linux awk删除文本重复行需要注意强制类型转换的问题
    下一篇:Linux ACL基本概念及典型用法
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    linux sed命令互换包含指定关键字的行 linux,sed,命令,互换,包含,