zoukankan      html  css  js  c++  java
  • Linux--shell三剑客<sed>--07

    1、sed(stream editor):

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

      默认显示输出所有文件内容

      注意:sed编辑文件,却不改变原文件

    2、sed的工作原理:

      指定一个文本文件,依次读取文本文件每行的内容,读取到模式空间中(PATTERN SPACE),在模式空间中进行文本匹配,对匹配后的内容进行修改(替换、删除、打印、修改、保存等等)

    3、用法:

      sed [参数] “sed自己独立的用法格式语句” [文本文件]

    4、常见参数

      -r 指定扩展的正则表达式

      -n 拒绝默认显示

      -e script 后面接脚本文件

      -f 指定脚本文件

      -l 指定文本的换行长度

      -i 直接修改文件内容***危险

    5、地址定界

      a) 直接匹配数值  sed -n ‘5p’ /etc/passwd

      b) 指定步长n~m  n为起始数字,m为步长 sed -n ‘1~3p’ /etc/passwd

      c) $指定行尾  sed -n ’10,$p’ /etc/passwd

      d) /正则表达式/  /正则/,/正则/   sed -n ‘/t{1,}/,$p’ /etc/passwd

      e) 0,addr    sed -n ‘0,/t{1,}/,$p’ /etc/passwd  匹配0行到正则行

      f) addr,+N 匹配addr行到,addr后N行 sed -n ‘/root/,+2p’ /etc/passwd

    6、常见命令

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

      c  替换行 sed “/被替换的值/c 替换的值” 文件

      d  删除  sed “/被删除的值/d 文件  sed “1,3d” 文件 删除1-3行

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

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

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

        格式:s/pattern/字符串/  把pattern匹配 的内容替换为字符串

        例子  sed “s/r/R/” /etc/etc/passwd  只替换了每行第一个r

        g 全部  sed “s/r/R/g” /etc/passwd  把文件中的所有r换为R

        1 2 3… 和正则表达式的分组相同,实现反向应用;指定某一个匹配项进行修改匹配

        &  调用前面匹配的内容  sed “s/test/&er/g” /etc/passwd 把test开头的所有后面加er后缀

    练习:

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

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

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

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

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

    dirname /var/log/message   #dirname命令提取路径的目录名部分
    #或者
    echo '/var/log/message' | sed 's/[^/]+$//'

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

    basename /var/log/message   #basename命令提取路径的文件名部分
    #或者
    echo '/var/log/message' | sed 's#^/.*/)##'
  • 相关阅读:
    dubbo接口测试
    httpclient接口返回结果中文显示问号
    idea创建springboot项目报错Initialization failed for 'https://start.spring.io' Please check URL, network and proxy settings.
    前端框架angular
    测试思考
    sonar的使用
    IDEA中getter方法报红
    dubbo相关
    IDEA无法从mapper方法直接点进xml文件的解决办法
    java笔记-spring boot系列
  • 原文地址:https://www.cnblogs.com/gxnihao/p/11365076.html
Copyright © 2011-2022 走看看