zoukankan      html  css  js  c++  java
  • [ Linux命令 ] sed

    一、sed是什么?

      Linux sed命令是利用script来处理文本文件。

      sed可依照script的指令,来处理、编辑文本文件。

      Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。

    二、sed基本语法

      sed基本用法:
      sed: 流编辑器,行编辑器 ( 全屏编辑器:vim )  模式空间:默认不编辑源文件,仅对模式空间中的数据做处理

    sed [option]'AddressCommand' file ...

        -n: 静默模式    不再默认显示模式空间中的内容
        -i: 直接修改源文件
        -e script -e script: 可以同时执行多个脚本
        -f sed.script
        -r: 表示使用扩展正则表达式
    Address:
    1、StartLine,EndLine
        比如1,100
        $: 最后一行
    2、/RegExp/
        /^root/
    3、/pattern1/,/pattern2/
        第一次被pattern1匹配到的行开始,至第一次被pattern2匹配到的行结束,这中间的所有行
    4、LineNumber
        指定的行
    5、StartLine, +N
        从startLine开始,向后的N行

        sed '1,+2d' /etc/fstab 删除第一行到第三行

    Command:
        d: 删除符合条件的行;

    sed '/^root/d' /etc/passwd

        p: 显示符合条件的行;
        a string: 在指定的行后面追加新行,内容为'string'

    sed '/^root/a #hello world' /etc/passwd

        i string: 在指定的行前面追加新行,内容为'string'
        r FILE: 将指定的文件跟内容添加至符合条件的行处
        w FILE: 将指定范围内的行另存为指定的文件中。
        s/pattern/string/修饰符: 查找并替换,模式只替换每行中第一次被模式匹配到的字符串
            加修饰符
            g: 全局替换
            i: 忽略字符大小写

    练习:
    1、删除文件中行首的空白符

    [root@node1 ~]# cat abc.txt 
    a
    
    bat hello
    
    big abc
    [root@node1 ~]# sed '/^$/d' abc.txt 
    a
    bat hello
    big abc

    2、替换/etc/inittab文件中'id:3:initdefault:'一行中的数字为5;

    [root@node1 ~]# sed -n  '/^id/p' /etc/inittab | sed 's/3/5/' 
    id:5:initdefault:

    3、删除/etc/inittab文件中的空白行

    [root@node1 ~]# cat abc.txt 
    a
    
    bat hello
    
    big abc
    [root@node1 ~]# sed '/^$/d' abc.txt 
    a
    bat hello
    big abc

    4、删除/etc/inittab文件中开头的#号;

    [root@node1 ~]# sed '/^#/d' /etc/inittab 
    id:3:initdefault:

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

    echo /etc/rc.d/ | sed 's@/@
    @g' | sed -n '3p'
  • 相关阅读:
    jq insertBefore 的返回值
    微信公众号-定位之地址逆解析&导航
    微信JS-SDK
    Vue
    ES6-函数的扩展
    ES6-数组的扩展
    JSP
    JS
    HTML+CSS
    jdbc操作数据库
  • 原文地址:https://www.cnblogs.com/hukey/p/5838061.html
Copyright © 2011-2022 走看看