• awk 和 sed (Stream Editor)


    1.sed 

    pattern space(模式空间)相当于车间sed把流内容在这里处理;

    hold space(保留空间)相当于仓库,加工的半成品在这里临时储存(当然加工完的成品也在这里存储)。

    h/H  :copy/append pattern space to hold space(复制或者追加模式空间的数据至保留空间);

    g/G  :copy/append hold space to pattern space(复制或者追加保留空间的数据至模式空间);

    n/N  :Read/append the next line of input into the pattern space.(读取或追加模式空间数据的下一行数据);

     x         :exchange the contents of pattern space and hold space(交换模式空间和保留空间的数据);

    d          :Delete pattern space.  Start next cycle. (删除模式空间内容);

    h/H和g/G以及x联合起来用,可以达到栈和队列的使用目的。


    sed 'G' a.txt
    因为hold space的初始为一个空行,并且始终没有修改其中的数据,所以结果是每行数据之后多了空行。

    sed 'h;G' a.txt
    模式空间复制到保留空间,将保留空间复制到模式空间,结果是复制每一行数据。

    sed 'p' a.txt
    输出模式空间的内容

    sed -n '' a.txt
    缺少了p命令,不能将pattern space中的数据进行输出, 结果是空

    sed -n 'n;p' a.txt
    n表示读取模式空间的下一行,结果是只显示偶数行


    sed -n 'p;n' a.txt
    奇数行显示

    sed -n '1!G;h;$p' a.txt
    倒序显示
    在1或$命令中添加!,表示第一行或者最后一行不执行这个命令。

    参考:

    sed

    出处:

    awk 和 sed 

    sed命令简单使用-pattern space与hold space  

  • 相关阅读:
    CF251D
    P6914
    CF1100F
    双连通 / 圆方树 胡扯笔记
    P4082
    SparkSql使用Hive中注册的UDF函数报类找不到问题解决
    Oracle 查询时使用时间作为where报错hour must be between 1 and 12
    【面试-python】
    Linux和Git
    AMBA初探
  • 原文地址:https://www.cnblogs.com/yuyutianxia/p/7967689.html
Copyright © 2020-2023  润新知