zoukankan      html  css  js  c++  java
  • sed语句

    sed命令

    流编辑器  作为行编辑器对文本进行编辑(以行为单位进行编辑)

    注意:sed编辑文件却不改变源文件;

    工作原理:指定一个文本文件依次读取文本文件中每行的内容,读取到pattern space模式空间中,在模式空间中进行文本匹配(正则表达式)对匹配后的内容进行修改(s替换、d删除、p打印、修改、保存)。

    常见选项

    -n (取消自动打印模式空间)

    -r 指定使用扩展表达式  所以不需要 |表示或者

    -e 脚本 for while if

    -l 指定“l”命令的换行期望长度

    -f 指定脚本文件

    -i 直接修改文件内容(不要使用)

    地址定界方式

    1. 直接匹配数值   --sed -n’5,7p’ filename
    2. d~步长  --sed -n ‘1-3p’ filename
    3. $指定行尾    --sed -n’10,$p’filename
    4. /正则/

        /正则1/   /正则2/

        sed -n’/k{5,}/,$p’abc

        sed -n’/(fd)+/.7p’abc 正则写在前面就没有问题写在后面就有问题

        sed -n’

      5.0,addr

        addr可以为数字/$/正则表达式

        sed-n’0,/k{5,}/p’abc

      6.addr,+N

        配置addr行到,addrN

        sed -n ‘/fd/.+5p’abc

      7.vim.代表光标所在当前行:esc+.,$/^/#/---注释     esc+”:.,+3s/^#//”---取消注释     /pattren1/,/pattern2/从模式1匹配到的行到模式2匹配到的行   步长用~,例如1~3

      8.*常见命令

    i 在匹配行的上一行添加指定的内容

         sed “/for/iabc”99cfb.sh

    a 在匹配行的下一行添加指定的内容

    sed “/for/aabc”99cfb.sh

    p print 打印(默认在屏幕上显示出来)建议和-n一起使用

    c 替换 sed”/aaa/cA”a

    d 删除 sed”/aaa/d”a     sed “1,3d”a    sed”/for/d”99cfb.sh

    n/N  读取/添加模式匹配到的行的下一行内容进行操作

    w 保存文件内容到一个新的文件

         sed “/pattern/w 新的文件名”原来的文件名

        eg:sed”/k/w  /root/aabbcc”abc

    s 文本内容替换,默认替换模式空间匹配到的第一项

        s/pattern/字符串/   中间的/可以替换为任意一个特殊字符

    g 行内全局替换

    1 2 和正则表达式相同实现反向应用;

    & 调用前面匹配的内容

    ..表示任意一个字符

    sed 高级应用:模式空间--hold space 占有空间

    练习:

    删除/boot/grub/grub.conf文件中所有空白开头的行行首的空白字符;

    sed 's/^[[:space:]]+//g' /boot/grub/grub.conf

    删除/etc/fstab文件中所有以#开头,后面至少跟一个空白字符的行   的行首的#和空白字符;

    sed 's/^#[[:space:]]+//g' /etc/fstab

    给定一个目录,取出其目录名

    echo "/etc/passwd"  |  sed 's/[^/]+$//'

    给定一个目录,取出其文件名

    echo "/etc/passwd" | sed 's#^/.*/(.*)##

    /var/log/message    

      sed '/[^/]+/' 

      dirname --  取出文件路径的路径部分

      basename  --  取出文件路径的文件名部分

  • 相关阅读:
    SpringBoot整合RabbitMq
    SpringBoot整合Mybatis
    Docker操作
    mysql高级复习
    mysql复习2
    springcloud复习2
    mysql复习1
    springcloud复习1
    JDBC(7)—DAO
    mysql报错:1130 -host 'localhost' is not allowed to connect to this mysql server
  • 原文地址:https://www.cnblogs.com/bishuyu/p/11397993.html
Copyright © 2011-2022 走看看