zoukankan      html  css  js  c++  java
  • 【shell】强大的流编辑器sed用法

    Date: 2018.7.4


    1、参考:

    http://man.linuxde.net/sed
    https://www.cnblogs.com/ctaixw/p/5860221.html

    2、sed用法总结

    (1)命令格式

    sed [options] 'command' file(s)
    sed [options] -f scriptfile file(s)

    (2)选项
    -e [scriptfile]或–expression= [scriptfile]:以选项中的指定的script来处理输入的文本文件;
    -f [scriptfile]或–file=[scriptfile]:以选项中指定的script文件来处理输入的文本文件;
    -h或–help:显示帮助;
    -n或–quiet或——silent:仅显示script处理后的结果;
    -V或–version:显示版本信息。
    (3)sed命令

    a 在当前行下面插入文本。(追加)
    i 在当前行上面插入文本。
    c 把选定的行改为新的文本。
    d 删除,删除选择的行。
    D 删除模板块的第一行。
    s 替换指定字符
    h 拷贝模板块的内容到内存中的缓冲区。
    H 追加模板块的内容到内存中的缓冲区。
    g 获得内存缓冲区的内容,并替代当前模板块中的文本。
    G 获得内存缓冲区的内容,并追加到当前模板块文本的后面。
    l 列表不能打印字符的清单。
    n 读取下一个输入行,用下一个命令处理新的行而不是用第一个命令。
    N 追加下一个输入行到模板块后面并在二者间嵌入一个新行,改变当前行号码。
    p 打印模板块的行。
    P(大写) 打印模板块的第一行。
    q 退出Sed。
    b lable 分支到脚本中带有标记的地方,如果分支不存在则分支到脚本的末尾。
    r file 从file中读行。
    t label if分支,从最后一行开始,条件一旦满足或者T,t命令,将导致分支到带有标号的命令处,或者到脚本的末尾。
    T label 错误分支,从最后一行开始,一旦发生错误或者T,t命令,将导致分支到带有标号的命令处,或者到脚本的末尾。
    w file 写并追加模板块到file末尾。  
    W file 写并追加模板块的第一行到file末尾。  
    ! 表示后面的命令对所有没有被选定的行发生作用。  
    = 打印当前行号码。  
    # 把注释扩展到下一个换行符以前。  

    (4)替换功能

    替换file文件中的字符串:

    sed 's/book/books/' file

    -n选项和p命令一起使用表示只打印那些发生替换的行:

    sed -n 's/test/TEST/p' file

    直接编辑文件选项-i,会匹配file文件中每一行的第一个book替换为books:

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

    全面替换标记: /g

    sed 's/book/books/g' file

    (5)删除操作

    删除空白行:

    sed '/^$/d' file
    

    (6)其他功能命令:
    r:读文件 w:写文件 a:追加 i:插入


    sed的功能是很强大的,常用功能主要有上面这些,后续碰到新的功能再更新于此。

    持续更新中。。。。。

  • 相关阅读:
    QuotationTools自动化脚本的部署和使用
    QuotationTool能做什么.
    【计算机原理】CPU部分.md
    【计算机原理】程序执行过程
    【大话存储II】学习笔记(18章),数据前处理和后处理
    【大话存储】学习笔记(17章),数据容灾
    【大话存储】学习笔记(20章),云存储
    【大话存储】学习笔记(16章),数据保护和备份技术
    【大话存储II】学习笔记(15章),NoSQL
    数据库(七),读写分离到CQRS
  • 原文地址:https://www.cnblogs.com/SoaringLee/p/10532423.html
Copyright © 2011-2022 走看看