• linux:sed高级命令之n、N


    转载请注明出处,请尊重作者的劳动成果

    如有错误,请指正

    sed的语法格式:

    sed [option] {sed-command} {input-file}

    sed在正常情况下,将处理的行读入模式空间(pattern space),脚本中的“sed-command(sed命令)”就一条接着一条进行处理,知道脚本执行完毕。然后该行呗输出,模式(pattern space)被清空;接着,在重复执行刚才的动作,文件中的新的一行被读入,直到文件处理完毕。

    但是,由于种种原因,如用户希望在某个条件下,脚本中的某个命令被执行或希望模式空间(pattern space)保留,以便下一次使用,这都有可能使sed在处理文件的时候,不按照正常的流程来进行处理,这时候就需要用sed高级命令来满足需求。

    先来说说命令n和命令N

    命令n:读取下一行到pattern space。由于pattern space中有按照正常流程读取的内容,使用n命令后,pattern space中又有了一行,此时,pattern space中有2行内容,但是先读取的那一行不会被取代、覆盖或删除;当n命令后,还有其他命令p的时候,此时打印出的结果是n命令读取的那一行的内容。

    看下图,你就明白了。

    新建文件,其内容如下

    cat 1.txt

    1

    2

    正常sed流程

    使用n命令后,

    N命令:将下一行添加到pattern space中。将当前读入行和用N命令添加的下一行看成“一行”。

    新建文件1.txt

    cat 1.txt

    1

    2

    正常sed流程

    使用N命令后

    参考:

    《sed and awk 第二版》

    Have a nice day!!!
  • 相关阅读:
    LLVM 笔记(二)—— PHI node
    Ubuntu,sublime快速启动
    ubuntu14.04安装Thinkphp
    ubuntu,scrapy安装
    ubuntu,sublime text 3中文输入的问题
    ubuntu安装beatifulsoup,pip,creepy
    ubuntu,系统设置无法打开
    Ubuntu14.04安装完成的基本配置
    在Sublime Text 3中添加snippet
    领航工作室启用新域名啦!
  • 原文地址:https://www.cnblogs.com/fhefh/p/2248942.html
Copyright © 2020-2023  润新知