• linux sed 命


    sed(stream editor):是流编辑器,按行进行操作,对符合模式的行在内存中进行操作,不对原文件进行修改,处理结束后将模式空间打印到屏幕。

    sed 的模式空间 处理文件流的内存空间叫模式空间,这个模式空间可以用正则表达式对文件进行过滤。

    sed [optitons]'AddressCommand' file,file....

    [optition]

    -n 不再显示模式空间中的内容,

    -i 直接修改原文件,

    -e :可以同时执行多个脚本

    -f 指定一个文件 文件里面保存操作的脚本

    -r:表示使用扩展正则表达式

     Address

    Address:
    1.StartLine,EndLine 用逗号隔开
    2.模式 /Pattern/ Pattern=RegExp  eg:/^root/  以root 开头的行
    3./pattern1/,/pattern2/,第一次被pattern1匹配到的行至第一次被pattern2匹配到的行
    4.只给一个数值,特定的一行。$表示最后一行。
    5.指定起始行,StartLine,+N,从StartLine开始,向后N行。

    Command:
    d:删除符合条件的行
    p:显示符合条件的行 显示以斜线开头的行 eg:sed '/^//p' /etc/fstab
    a: string: 在指定的行后面追加新行,内容为string  eg:'/^//a hello word' /etc/fstab 寻找/etc/fstab 中以反斜杠开头的行,并在后面添加 hello word
    i: string;在指定的行前面添加新行,内容为string
    r file :将指定的文件的内容添加至符合条件的行处 eg:sed '2r /etc/issue' /etc/fstab
    w file :将指定范围内的内容另存为另外一个文件中 eg: sed '/oot/w /tmp/oot.txt' /etc/fstab 将/etc/fstab中含有oot的行保存到/tmp/oot.txt中
    s:/pattern/string/修饰符:查找并替换,默认替换每行中第一次被模式匹配到的字符串。加修饰符 g:全局替换。i:查找时忽略字符大小写。s后面的分隔符可以用用几个相同的字符代替。比如###
    sed's/oot/OOT/' /etc/fstab,sed's/^//#/' /etc/fstab将行首的反斜杠替换为井号。
    &:表示引用的模式匹配到的串。 sed 's#l..e#&r#g' sed.txt 将符合l..e 的字符串替换为后面加r
    或者sed 's#(l..e)#1r#g' sed.txt 这叫做后向引用。

  • 相关阅读:
    css hack
    纯DIV+CSS制作的三级鼠标经过弹出下拉导航菜单源码
    题解 Luogu P3863 序列
    破解SA的密码的方法
    转 三种方法实现实时切换CSS样式
    SQL Server 性能优化工具(1)
    Sql server中时间查询的一个比较快的语句
    转 CodeForFun编写自动登录Email的程序
    ISAPI_rewrite中文手册
    ASP.NET中实现二级或多级域名(修改UrlRewrite)
  • 原文地址:https://www.cnblogs.com/dfyz/p/4641601.html
Copyright © 2020-2023  润新知