LinuxDay10——文本处理工具sed

Posted gmiaomiao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LinuxDay10——文本处理工具sed相关的知识,希望对你有一定的参考价值。

sedStream EDitor),行编辑器

sed [option]..‘scrip‘ inputfile

scrip ‘地址命令‘

不给地址:对全文进行处理

单地址:

  #:指定的行  $:最后一行

  /pattern/:被此模式所能匹配到的每一行

地址范围

  #,#

  #,+#

  /part/,/part2/

  #,/part1/

~:步进

  1~2奇数行

  2~2偶数行

常用选项:

 -n关闭打印内容

 -r 使用拓展正则表达式

 -e多点编辑

 -i bak:备份文件并原处编辑

 -r 支持使用扩展正则表达式

编辑命令:

  d删除空间模式的匹配的行

  p打印当前空间内容

  d 删除

  !模式匹配取反

  =模式空间行 加行号

  a[\]text:在指定行后面追加文本

    支持使用\n实现多行追加

  i[\]text:在行前面插入文本

  c[\]text:替换行为单行或多行文本

  w/path/somefile:保存模式匹配的行至指定文件

  r/path/somefile:读取指定文件的文本至模式空间中匹配到的行后

  =:为模式空间中的行打印行号

  !:模式空间中匹配行取反处理

sed工具

  s///:查找替换,支持使用其他分隔符,[email protected]@@,s###

  替换标记:

    g:行内全局替换

    p:显示替换成功的行

    w/PATH/TOSOMEFILE:将替换成功的行保存至文件中

高级编辑命令 

  P:打印模式空间开端至\n内容,并追加到默认输出之前

  h:把模式空间中的内容覆盖到保持空间中

  H;把模式空间中的内容追加至保持空间中

  g:把保持空间中的内容覆盖到模式空间

  G:把保持空间中的内容追加至模式空间

  x把模式空间中的内容与保持空间中的内容进行互换

  n把读取匹配到的行的下一行覆盖至模式空间

  N读取匹配到的行的下一行追加至

  d删除模式空间中的行

  D:如果模式空间包含换行符,则删除直到第一个换行符的模式空间中的文本,并不会读取新的输入行,而使用合成的模式空间重新启动循环。如果模式空间不包含换行符,则会像发出d命令那样启动正常的新循环

 

以上是关于LinuxDay10——文本处理工具sed的主要内容,如果未能解决你的问题,请参考以下文章

linux学习-文本处理工具sed

Unix & Linux的文本处理工具 -- grep, sed & awk

sed文本处理工具

运维学习之sed文本处理工具

12文本处理工具sed

Sed文本处理工具