shell脚本——sed命令

sed 命令
    作为行编辑器,对文件进行编辑(以行为单位进行编辑)
    sed编辑文件,却不改变原文件
    sed工作原理:
        指定一个文本文件,依次读取文本文件中的每行内容,读取到模式空间中,在模式空间中进行匹配,对匹配后的内容进行修改
    用法:
        -n  拒绝默认显示
        -r   指定用扩展的正则表达式
            匹配ip
            1、所有的都不要,2、|或者
        -e   script  for while if
        -l   指定文本换行长度
    地址定界方式:
        1、直接匹配数值:sed -n '5p' 文件
        2、d~指定步长:sed -n '1~3p' 文件
        3、$  指定行尾: sed -n '10,$p' 文件
        4、/正则/
               /正则1/,/正则2/
                sed -n '/k{5,}/,$p' abc
                sed -n '/(fd)+/,7p' abc ?正则写在前面就没有问题,写在后面就又问题
        50,addr
            addr可以作为数字/$/正则表达式
            sed -n '0,/k{5,}/p' abc
        6、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  保存文件内容到一个新的文件
        *S*  文本内容替换,默认替换模式空间匹配到的第一项
            语法格式:s/pattern/string/
            中间的/可以替换为任意一个特殊字符  例如s### s@@@ S%%%%w
            g  全局
            1  2   和正则表达式的分组相同,实现反向作业
            &  调用前面匹配的内容
原文地址:https://www.cnblogs.com/shy13138/p/11387550.html