zoukankan      html  css  js  c++  java
  • sed命令的基本使用

    sed(Stream Editor):流编辑器

    一次只读取一行

    模式空间

    1、sed语法:

    sed [option] "script" FILE...

    2、选项:

    -n:静默模式,不输出模式空间中的内容

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

    -f:/path/to/sed_script_file:指定sed脚本文件

    -e 'script' -e 'script' :指定多个编辑脚本

    -i:直接修改读取的文件内容,而不是输出到终端

    3、编辑命令:

    d:删除

    p:打印

    i ext:匹配内容上面增加text内容

    a ext:匹配内容西面增加text内容

    r /path/to/somefile:在制定位置把另外一个文件的内容插入进来

    w /path/to/somefile:将符合条件的所有行保存至指定得文件中

    = :显示符合条件行的行号

    例如:# sed -n '/^UUID/=' /etc/fstab

    s///:查找条件可以使用模式,但要替换的内容不行

    4、地址定界:

    startline,endline:1,3

    /pat1/,/pat2/

    /pattern/

    用法:

    sed [options] 'addr1[,addr2]编辑命令' FILE ...

    sed [options] "addr1[,addr2]编辑命令" FILE ...

    5、正则表达式:

    基本的:

    字符:

        .

        []

        [^]

    次数:

        *

        ?

        {m,n}

    锚定:

        ^

        $

        <,

        >,

    分组:

        ()

    引用:

        1,2,...

    扩展:

    字符:

         .

        []

         [[:lower:]],[[:punct:]],[[:alnum:]]

    次数:

        *

        ?

        +

        {m,n}

    锚定:

        ^

        $

        >,

        <,

    或:

        a|b

    分组:

        ()

    引用:

        1,2,...

    sed '地址定界s@查找条件@替换文本@'

    6、修饰符:

    g:global,全局替换

    i:ignore-case,不区分字符大小写

    7、例子:

    1、将selinux的enforcing改成disabled

    # sed 's@^SELINUX=enforcing@SELINUX=disabled@g' /etc/selinux/config

    2、删除/etc/init.d/functions文件中的空白行

    # sed '/^$/d' /etc/init.d/functions

    3、删除/etc/inittab文件中位于行首的#号

    # sed 's@^#@@g' /etc/inittab

    4、删除/etc/rc.d/rc.sysinit文件夹中以#后跟至少一个空白字符开头的行的行首的#和空白字符

    # sed 's@^#[[:space:]]{1,}@@g' /etc/rc.d/rc.sysinit

    5、删除/boot/grub/grub.conf文件中行首的空白字符

    # sed 's@^[[:space:]]{1,}@@' /boot/grub/grub.conf

    6、取出一个文件路径的目录名称

    # echo /etc/sysconfig/network/ | sed 's@[^/]{1,}/?$@@'

    7、按时间截取日志

    sed -n '/2017:03/,/2017:04/p' www.fansik.cn_access.log-20170611 > 20170610-03-04

  • 相关阅读:
    FpSpread实现筛选的功能
    比较通用的ID,ParentID结构表,返回树路径。
    如何解决,在安装Sql2000时,出现程序挂起的解决方法。
    FarPoint Spread 控件如何实现剪切,粘贴,复制
    MySql中Group By和Order By使用的注意事项!
    php md5下16位和32位的实现代码
    Shadows在C#代替方法!
    FTP命令使用详解
    数据库中存放目录与文件结构,方案选择
    vs2008 sp1下载
  • 原文地址:https://www.cnblogs.com/fansik/p/5869556.html
Copyright © 2011-2022 走看看