zoukankan      html  css  js  c++  java
  • shell_Day06

    sed命令

      Linux文本处理三剑客 之 sed
      sed stream EDite
      作为行编辑器,对文本进行编辑(以行为单位进行编辑)
      注意:sed编辑文件,却不改变原文件;
     

    sed的工作原理:

      指定一个文本文件,依次读取文本文件中每行的内容,读取到模式空间中(PATTERN SPACE),在模式空间中进行文本匹配(正则表达式),对匹配后的内容进行修改(替换、删除、打印、修改、保存等)
      用法:
      sed [OPTION]... {script-only-if-no-other-script} [input-file]...
      sed [参数] “sed自己独立的用法格式的语句”[文本文件]
      常见选项
        -n 拒绝默认显示
        -r  指定使用扩展的正则表达式
        -e script   for while if
        -f 指定脚本文件
        -l  指定文本换行的长度?
        -i  直接修改文件内容(不要使用)
      

    地址定界方式

      1、直接匹配数值
        sed -n '5p' 文件
      2、 d~步长      
        sed -n '1~3p' 文件
      3、$  指定行尾
        sed -n '10,$p' 文件
      4、/正则/
        /正则1/,/正则2/
        sed -n '/k{5,}/,$p' abc
      5、0,addr
        addr 可以为 数字/$/正则表达式
        sed -n '0,/k{5,}/p' abc
      6、addr,+N   
        配置addr行到,addr后N行
        sed -n '/fd/,+5p' abc
      **常见命令
        p  print  打印(默认在屏幕上显示出来) 建议和 -n 一起使用;
        c  替换
          sed "/aaa/c A" a
        d 删除
          sed "/aaa/d" a
          sed "1,3d" a
        n N  读取/添加  模式匹配到的行的下一行内容,再对其进行操作
        w 保存文件内容到一个新的文件
          sed "/patthen/w 新的文件名" 原来的文件名
          sed "/k/w /tmp/aabbcc" abc
        *s*  文本内容替换,默认替换模式空间匹配到的第一项;
          语法格式: s/pattern/字符串/
          中间的 / 可以替换为任意一个特殊字符 例如:s### s@@@ s%%%%
        g   全部
        1 2   和正则表达式的分组相同,实现反向应用;
        指定某一个匹配项进行修改替换
        &  调用前面(pattern)匹配的内容
          sed "s/r..t/&er/g" 文件
        

    sed的高级应用

        模式空间  --  hold space"占有空间"
        dirname --  取出文件路径的路径部分
        basename  --  取出文件路径的文件名部分
  • 相关阅读:
    07-selenium、PhantomJS(无头浏览器)
    06爬虫-异步协程
    Numpy数值类型与数值运算-03
    05爬虫-requests模块基础(2)
    初识Matplotlib-01
    03爬虫-requests模块基础(1)
    Django安装与简单事例-02
    JavaWeb学习总结(二):Http协议
    Tomcat学习总结(一):目录简介
    Web服务器学习总结(一):web服务器简介
  • 原文地址:https://www.cnblogs.com/diyudewudao/p/11408917.html
Copyright © 2011-2022 走看看