sed命令

  sed全名叫Stream EDitor它是一个流式编辑器也就是行编译器,工作是在模式空间中进行的。

  sed就是个管线命令;(还可以将数据进行取代、删除、新增、摘取特定行等功能)

用法参数: sed [-nef] [动作]

 参数:  -n 使用安静模式,(只列出经过sed特殊处理过的某行)

          -e 直接在指令模式上进行sed的动作编辑;

         -f 将sed的动作写在一个档案内,

          -r 动作支持的是正规表达式的语法  

 动作命令:动作要用引号括起来

     p 显示、

     d 删除、

     s 替换 并且支持 g所有和i不区分大小写、

     c 取代、

     r 在匹配行后加入内容、

     a \: 在模式匹配到的行后面添加新内容、

     i \: 在模式匹配到的行前面添加新内容、

     w 将匹配到的内容保存在别的文件中、

     h 将模式中的内容复制到保留空间 覆盖、

     H 将模式中的内容复制到保留空间 追加、

     g 将保留空间内容复制到模式空间 覆盖、

     G 将保留空间内容复制到模式空间 追加、

     n 操作匹配到的下一行,并覆盖匹配到的行、

     N 操作匹配到的行并追加到下一行、

     b: 跳转、忽略符合模式的行、

     x: 保留空间和模式空间对调、

具体操作

  sed "4,8d" 文件   (把一个文件中的第4到第8行删除)

  sed "4,8!d" 文件  (!取反结果)

  sed -n "5,8p" 文件  (显示一个文件的5到8行)

  sed "s/被取代的内容/新的内容/g" 文件 (把文件内某些内容用新的替换)

  sed "2,5p" 文件 (p命令为显示,但是sed默认的也是显示所以加入p命令后结果会显示两遍)

  sed  -n "5n;p" 文件 (覆盖第5行)

  sed '8b' 文件  (跳过第8行显示)

  sed '/[a-z]/d'  文件  (删除有小写字母的行)

  sed '/#/a \ 123' 文件   (在带有#号的行后加入123)

  sed '/#/i \ 123' 文件   (在带有#号的行前加入123)