欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

shell脚本——sed命令

程序员文章站 2022-07-06 18:39:18
sed 命令 作为行编辑器,对文件进行编辑(以行为单位进行编辑) sed编辑文件,却不改变原文件 sed工作原理: 指定一个文本文件,依次读取文本文件中的每行内容,读取到模式空间中,在模式空间中进行匹配,对匹配后的内容进行修改 用法: -n 拒绝默认显示 -r 指定用扩展的正则表达式 匹... ......
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 ?正则写在前面就没有问题,写在后面就又问题
        5、0,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   和正则表达式的分组相同,实现反向作业
            &  调用前面匹配的内容