sed的工作原理

sed的工作原理:

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

用法:

      sed[OPTON]…{script-only-if-no-script}[input-file]…

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

常见选项:

      -n 拒绝默认显示

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

       匹配IP

       1、所有的 都不要 2、|或者

       -e script for while if

       -f 指定脚本文件

       -l 指定文本换行的长度

地址定界方式

1、直接匹配数值

        sed –n ‘5p’ 文件

2、digital ~步长

        sed –n ‘1~3p’ 文件(p 打印 s替换)

3、$指定行尾

        sed –n ’10,$p’ 文件

4、/正则1/

        sed –n ‘/k{5,}/,$p’ abc   sed –n ‘/(as)+/,7p’ abc

5、0,addr

        addr可以为数字/$/正则表达式   sed –n ‘0,/k{5}/p’ abc

6、addr,+N

        配置addr行到,addr后N行

        sed –n’/fd/,+5p’ abc

       (*d 前面字符的任意次数)

vim .代表光标所在当前行 : . ,$s/^/#/】先进入vim编辑模式:可以把从当前行开始换成#注释

vim  : . , +3s/^#//】从第三行去掉后面的注释

常用命令:

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

       c  替换后面指定的内容

       d  删除 sed “1,3d” a

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

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

              sed”/for/i abc”99xfb.sh

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

              sed”/for/a abc”99xfb.sh

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

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

语法格式:s/pattern/字符串/  把前面的pattern替换成后面的字符串

中间的/可以替换为任意一个特殊字符 例如:s###s@@@s%%%

       global全部  g 全部匹配

       12 和正则表达式的分组相同,实现反向引用;

       指定某一个匹配项进行修改替换

       & 调用前面匹配的内容

sed的高级应用:

        模式空间 ---hold space”占有空间

原文地址:https://www.cnblogs.com/wsq-qq/p/11384844.html