• sed命令


    sed命令

      流编辑器,以行为单位进行编辑;

      sed编辑文件但不改变原文件;

      sed命令有模式空间(PATTERN),文件按行的的形式传入模式空间进行处理

     1、常见选项

      -n  // 拒绝默认显示

      -r  // 指定使用拓展的正则表达式

      -e 脚本  // for while if

      -f  // 指定脚本文件

      -l  // 指定文件换行长度

      -i  // 直接修改文件内容(一般情况下不用使用)

    2、地址定界方式

      21直接匹配数值

        sed -n ‘5,7p’ 文件  // 匹配57

      22 d ~ 步长

        Sed -n ‘1 ~ 3p’ 文件

      23 $ 指定行尾.代表光标所在当前行,可以用来vim的多行注释)

        Sed -n ‘10,$p’ 文件

      24 /正则/

        /pattern1/,/pattern2/   /正则1//正则2/ 第二种模式

      例:
        sed
    -n '/k{5,}/,$p' abc     sed -n '/(fd)+/,+2p' abc

      250addr

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

    例:
        sed -n '0,/k{5,}/p' abc

      26 addrN

         配置addr行到addr后N行

    例:    
        sed -n '/fd/,+5p ' abc

    3、*常见命令

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

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

        sed “/aaa/i A” a

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

        sed “/bbb/a B” c

      c  // 替换行

        sed “/aaa/c A” a

      d  // 删除

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

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

      *s*  // 文本内容替换,默认替换模式空间匹配到第一项(语法格式:s/需要替换的/替换后的/)

       g  // s一起用可以全部替换

      &  // 在字符串内容中应用pattern匹配到内容

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

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

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

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

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

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

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

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

     

  • 相关阅读:
    IntelliJ Idea 快捷键列表
    mysql索引类型和方式
    基本git指令
    idea中deBug方法
    BeanUtils.copyProperties(A,B)使用注意事项
    MySQL字段类型
    JAVA常识1
    Redis在windows下的安装下载
    Netty
    IDEA工具
  • 原文地址:https://www.cnblogs.com/yxq-123/p/11379652.html
Copyright © 2020-2023  润新知