首页 > 系统服务 > 详细

16 shell脚本--007三剑客之sed

时间:2019-08-16 14:00:26      阅读:70      评论:0      收藏:0      [点我收藏+]

1、sed  (Stream SDite)

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

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

  (1)sed的工作原理:

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

  (2)常见选项:

      -n

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

        匹配IP

          1、所有的 \ 都不要

          2、|  ----> 或者

      -e  script  

      -f    指定脚本文件

      -l    指定文本换行的长度?

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

  (3)地址定界

      1、直接匹配数值

        sed -n ‘5,7p‘ 文件   ?

      2、d(数字)~步长

        sed -n ‘1~3p‘  文件

      3、$  指定行尾

        sed -n ‘10,$p‘ 文件

      4、/正则/

        /正则1/,/正则2/

        sed -n ‘/fd/,$p‘ 文件   //fd是文件某一行的内容

      5、0,addr

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

        sed -n ‘0./k\{5,\}/p‘ 文件

      6、addr,+N

        匹配addr行到addr后N行

        sed -n ‘/fd/,+5p‘ 文件

      7、addr,-N

  (4)、常见命令

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

      c   替换行

         sed "/aaa/c \A“  文件

      d   删除

         sed ”1,3d“文件

         sed ”/aaa/d“  文件

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

      w  保存

        sed "/pattern/w 新的文件名"  原来的文件名

      s   文本内容替换

          语法格式:s/pattern/字符串/

               扩展:中间的 / 可以替换成任意一个字符,例如:s###  s@@@  s%%%

      g  全部匹配

        sed "s#k#K#gw /root/text.txt" 文件    //把全部小k替换成大K,然后保存到/root/text.txt

        /1 /2  和正则表达式的分组相同,实现相反应用

16 shell脚本--007三剑客之sed

原文:https://www.cnblogs.com/wx00/p/11362805.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!