8.16 sed命令

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

  sed的工作原理:  
    指定一个文本文件,依次读取文本文件中每行的内容,读取到模式空间中(pattern space),
    在模式空间中进行文本匹配(正则表达式),对匹配后的内容进行修改(替换,删除,打印,修改,保存等)
  sed的用法:
    sed [OPTION]... {script-only-if-no-other-script} [input-file]...
    sed [参数] "sed独立用法格式语句" [文本文件]

  常见选项
    默认全部输出
    -r 指定使用扩展的正则表达式
          匹配IP
          1、所有的\都不要
          2、|表示或者

    -n 拒绝默认显示
    -e script
    -f 指定脚本文件
    -l 指定文本换行的长度
    -i 直接修改文件内容
  地址定界方式
    1、直接匹配数字
    sed -n `5p` 文件
    2、d~步长
    sed -n `1~3p` 文件
    3、$指定行尾
    sed -n `10,$p` 文件
    4、/正则/
    sed -n `/k\{5,\}/,$p` 文件
    5、0,addr
    addr可以为数字/$/正则表达式
    sed -n `0,/k\{5,\}/p` 文件
    6、addr,+N
    匹配addr行到addr后n行
    sed -n `/fd/,+5p` 文件

  常见命令:
    1、p print 打印(默认在屏幕上显示出来)建议和 -n 一起使用;
    2、c 替换
    sed "/要替换的内容/c \替换内容" 文件
    3、d 删除
    sed "/aaaa/d" 文件
    4、n N 读取/添加 模式匹配到的行的下一行内容,再对其进行操作
    5、w 保存文件内容到一个新的文件
    6、s 文本内容替换,默认替换模式空间匹配到的第一项;
    语法格式:s/pattern/字符串/
    中间的/可以替换为任意一个特殊字符
    g global 全部
    \1\2 和正则表达式的分组相同,实现反向应用;
    指定某一个匹配项进行替换
    & 调用前面匹配的内容

  sed的高级应用
    模式空间 - - hold space“占有空间”

posted @ 2019-08-16 17:28  酒友az  阅读(214)  评论(0编辑  收藏  举报