sed编辑器使用

 简述

      sed编辑器被称作流编辑器,和普通的交互式文本编辑器恰好相反。在交互式文本编辑器中(比如vim),

你可以用键盘命令来交互式地插入、删除或替换数据中的文本。流编辑器则会在编辑器处理数据之前基于预先

提供的一组规则来编辑数据流。sed编辑器可以根据命令来处理数据流中的数据,这些命令要么从命令行中输

入,要么存储在一个命令文本文件中。sed编辑器会执行下列操作。

  (1) 一次从输入中读取一行数据。

  (2) 根据所提供的编辑器命令匹配数据。

  (3) 按照命令修改流中的数据。

  (4) 将新的数据输出到STDOUT

  在流编辑器将所有命令与一行数据匹配完毕后,它会读取下一行数据并重复这个过程。在流编辑器处理完流

中的所有数据行后,它就会终止

用法格式:

       sed   [option]…   ‘scripts’    inputfile

   常用选项:

           -n  不输出模式空间内容 到屏幕。-n选项将禁止sed编辑器输出。但p替换标记会输出修改过的行。将二者

      配合使用的效果就是只输出被替换命令修改过的行。

           -e  多点编辑,支持多个参数并行筛选

               两种写法,两种效果

               -e ‘par1;part2’ 仅显示part2匹配到的行,但是part1匹配到的会做更改

               -e’part1’ –e ‘part2’  part1 part2匹配到的行都会做显示

                    seq 100 |sed -ne ‘s/1/ffffff/p’ -ne ‘s/9/ppppp/p’

                    seq 100 |sed -ne ‘s/1/fffff/;s/9/pppp/p’

             两个命令的显示结果不一样,第一种是 都显示

             第二种的话 s/1/fffff/ 匹配到的行没有显示,但是已经做了更改,

             再被s/9/pppp/匹配到的话会做显示,但是被s/9/pppp/的行都会显示

sed编辑器使用

sed编辑器使用


         -f  从指定的文件中读取编辑脚本

              脚本中仅写地址命令,每条命令写在一行,多条命令时,分行写即可

              在脚本中写多条命令时,相当于加上了-e选项

sed编辑器使用

               

sed编辑器使用

 

           -r  支持扩展的正则表达式

           -i.bak  备份文件,并修改原文件

 

   script :地址命令

        前面写地址定界,后面跟命令

      地址定界:

          1)不给地址,对全文进行处理

          2)单地址:

               #:指定的行

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

     下图中是将passwd文件中包含ma的行bash更改为csh

             sed编辑器使用

          3)地址范围:

               ##  从第几行到第几行

               #+#  从第几行至增加的行数

                     例如:3,4 从第三行到第七行

               /pat1/,/part2/

              #,/part1/

           4) ~: 步进

                 1~2  奇数行

                 2~2  偶数行

            也同样可以写成1~3,相当于显示1 4 7 10…     

         sed编辑器使用

      显示r开头的行

           sed编辑器使用

 

              /part1/,/part2/

              sed编辑器使用

编辑命令:

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

p:显示模式空间中的内容

s///:查找替换,支持使用其它分隔符,s@@@s###

4种可用的替换标记:

  数字,表明新文本将替换第几处模式匹配的地方;

g,表明新文本将会替换所有匹配的文本;

p,表明原先行的内容要打印出来;

  w file,将替换的结果写到文件中。

在第一类替换中,可以指定sed编辑器用新文本替换第几处模式匹配的地方。

sed编辑器使用

          2表示在每一行第二次匹配处做更改

  第四类w选项可以将更改的文件写入到文本中,如下图所示

sed编辑器使用

    

a  在指定行后追加文本 支持\n多行追加

i 在指定行前追加

sed编辑器使用

  sed编辑器使用

 c   替换命令,支持文本寻址

  sed编辑器使用

=  打印行号

sed编辑器使用

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

r 将一个独立文件中的数据插入到数据流中。

$ cat data12.txt

This is an added line.

This is the second added line.

$

$ sed ‘3r data12.txt’
data6.txt

This is line number 1.

This is line number 2.

This is line number 3.

This is an added line.

This is the second added line.

  This is line number 4

 

原创文章,作者:mapipi,如若转载,请注明出处:http://www.178linux.com/78286

(0)
mapipimapipi
上一篇 2017-06-19
下一篇 2017-06-20

相关推荐

  • N26_第二周

    1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。 a 文件查看类  cat tac  head  tail more  less b 文件操作类  touch cp  mv  rm more命令:   &nbsp…

    2017-05-26
  • 高可用集群部署文档

    同学们都很活跃,自己好久没写了,也动动笔,下面文章写着玩的,如有错误请联系(NET7-粤-义薄云天) 高可用集群部署文档   目录: 目录: 1 项目需求: 2 实现方式: 2 拓扑图: 3 系统及软件版本: 3 安装步骤: 4 IP分配: 4 LVS和keepalived的安装和配置: 4 LVS主配置: 4 LVS2备 配置: 7 w…

    Linux干货 2015-08-11
  • 第三周作业

    1、列出当前系统上所有已登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 ~]# who | cut -d ' ' -f 1 | sort -u 2、取出最后登录到当前系统的用户的相关信息。 ~]# la…

    Linux干货 2016-12-19
  • M22 使用光盘修复Centos实验初探

    实验目的: 服务器由于文件丢失等原因造成无法启动,可以使用光盘引导启动服务器,然后对服务器进行修复。 实验环境: VMware12安装Centos6.8虚拟机 Centos6.8的光盘镜像 实验原理: 手动删除虚拟机上的rpm程序文件,使用光盘镜像恢复安装rpm程序。 实验过程: 1、     执行命令删除rpm程序,…

    2017-03-06
  • Linux的常见文件类型

      在linux中,文件的类型和权限通常以【-rwxr-xr-x】来表示,文件以第一个字符来表示不同的文件类型,具体如下。   – :普通文件;颜色为灰白色   d :目录文件;颜色为蓝色   b :块设备文件;颜色为黄色   c :字符设备文件;颜色为黄色   p :管道文件;颜色为绿…

    Linux干货 2016-10-20
  • N22-第一周练习作业-冥界之王

    1.描述计算机系统的组成及功能硬件组成(输入设备,输出设备,存储器,运算器,控制器) 输入设备:鼠标,键盘,麦克,声卡(输入声音),扫描仪,手写板等输出设备:显示器,声卡(输出声音),音箱,投影仪等存储器:内存,硬盘,磁带,CPU内部还可以分1,2,3级缓存运算器:主要完成对二进制数据的定点算术运算(加减乘除)、逻辑运算(与或非异或)以及移位操作。在某些CP…

    Linux干货 2016-08-15