三剑客之sed基础使用

Stream Editor

sed(意为流编辑器,源自英语“stream editor”的缩写)是Unix常见的命令行程序。sed用来把文档或字符串里面的文字经过一系列编辑命令转换为另一种格式输出。sed通常用来匹配一个或多个正则表达式的文本进行处理。
分号(;)可以用作分隔命令的指示符。尽管sed脚本固有的很多限制,一连串的sed指令加起来可以编程像 仓库番快打砖块、甚至俄罗斯方块等电脑游戏的复杂程序。


sed : Stream Editor(流编辑器)的用法

sed默认情况下不对原文件做处理.
sed [options] '[Address]Command' file ...
    Options:
        -n, --quiet, --silent : 静默模式,不再自动输出模式空间里的内容,而只会显示命
            令-p要求显示的内容.
        -i : 直接修改原文件.
        -e script : 可以同时执行多个脚本
        -f  ed-script-file : 从脚本文件中读取编辑命令,当有多个命令需要执行时,这个很有用.
        -r : 使用扩展正则表达式
    Address:
        1.StartLine,Endline 比如1,100
        2./RegExp/    比如 sed "/^root/d" /etc/passwd  (这里的双斜线//不能少)
        3./pattern1/,/pattern2/  # 第一次被pattern1匹配到的行开始到第一次被pattern2
                                    匹配到的行结束
        4. LineNumber            # 精确匹配指定的行
        5.$ : 匹配最后一行
        6.StartLine,+N   # 从开始行,向后的N行.
        7.!   -->取反 示例:  /used/ !s/new/used/g   将没有used的其它行的new改成used

    Command:
        d : 删除. 比如: sed '1,2d' /etc/fstab
        p : 打印,显示符合条件的行.
        a \string : 在指定的行后面追加新行,内容为string
        i \string: 在指定的行前而插入新行,内容为string
        r filename:(read text) :在指定的行后添加入文件内容
        R filename:(read lines) : 在指定的行后添加入文件的一行内容.
        w filename
          Write the current pattern space to filename. 例如 sed "/oot/w /tmp/oot.txt" /etc/fstab
        W filename
          Write the first line of the current pattern space to filename.  This is a GNU exten‐
          sion.

        s/pattern/string/修饰符 :(查找并替换,默认只替换每行中第一次被模式匹配到的
                                pattern可使用正则)
            修饰符:
                g: 全局替换
                i: 忽略大小写
              数字: 如1表示仅替换第1个
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本文承接之前写的三十分钟学会AWK一文,在学习完AWK之后,趁热打铁又学习了一下SED,不得不说这两个工具真的堪称...
    mylxsw阅读 9,850评论 3 74
  • linux资料总章2.1 1.0写的不好抱歉 但是2.0已经改了很多 但是错误还是无法避免 以后资料会慢慢更新 大...
    数据革命阅读 14,191评论 2 33
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,599评论 19 139
  • Linux 中可以使用强大的编辑器如 vim 和 emacs 来编辑文本文件。但有时候,我们只是需要自动的处理文本...
    shenzhenboy阅读 3,607评论 0 0
  • Sed工具工作原理及特性 1. sed是流编辑器,每一次读取一行到内存中,即称之为模式空间(pattern spa...
    魏镇坪阅读 13,748评论 0 12