探索处理文本工具“sed”的相关奥妙

一:sed工具

1,set的介绍:sed是一种流编辑器,它一次处理一行内容。处理时,把当前 处理的行存储在临时缓冲区中,称为“模式空间”(pattern
space),接着用sed命令处理缓冲区中的内容,处理完成后
,把缓冲区的内容送往屏幕。然后读入下行,执行下一个循
环。如果没有使诸如‘D’的特殊命令,那会在两个循环之间
清空模式空间,但不会清空保留空间。这样不断重复,直到
文件末尾。文件内容并没有改变,除非你使用重定向存储输
出。 

它的功能:主要用来自动编辑一个或多个文件,简化对文件的反复操作,编写转换程序等。

2,sed的用法:

sed -n 不输出模式空间内容到屏幕,既不自动打印
-e 多点编辑,对每行处理时,可以有多个script
-f 把script写到文件中,在执行sed时-f指定文件路径,如果是多个script,换行写

  -r 

支持正则表达式

-i 直接将处理的结果写入文件
-i 文件名 在将处理结果写入文件之前备份一份

script
地址的定界:

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

           sed -n ‘p’ 文件

(2)单地址:

           #:指定行

           sed -n ‘2p’ 文件: 指定文件的第二行内容

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

            sed -n ‘/nihao/p’ 文件:显示文件中匹配到带有nihao的一行

(3) 地址范围:

         #,#

       sed -n ‘1,5p’ 文件:显示文件中一到五行的信息

        #,#+

       sed -n ‘1,+2p’ 文件:显示文件中第一行和第三行的信息

      /part1/,/part2/

       sed -n ‘/n/,/m/’ 文件 :显示文件中第n到m行的信息

(4)~表示步进

sed -n ‘1~2p’ 只显示奇数行

sed -n ‘2~2p’ 只显示偶数行

编辑的命令:

d:删除模式空间匹配到的行,并立即启用下一轮循环

sed ‘2d’ 文件名 :删除文件中第二行的内容

p:打印当前模式空间内容,追加到默认输出之后 

a[\]txt :在指定行后面追加文本,可以使用\n实现多行追加

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

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

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

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

相关示例:

1、删除centos7系统/etc/grub2.cfg文件中所有以空白开头
的行行首的空白字符

探索处理文本工具“sed”的相关奥妙
2、删除/etc/fstab文件中所有以#开头,后面至少跟一个空
白字符的行的行首的#和空白字符

探索处理文本工具“sed”的相关奥妙
3、处理/etc/fstab路径,使用sed命令取出其目录名和基名

探索处理文本工具“sed”的相关奥妙

4、利用sed 取出ifconfig命令中本机的IPv4地址

探索处理文本工具“sed”的相关奥妙

5、统计centos安装光盘中Package目录下的所有rpm文件的以.分隔倒数第二个字段的重复次数

探索处理文本工具“sed”的相关奥妙

6、统计/etc/init.d/functions文件中每个单词的出现次数,并排序(用grep和sed两种方法分别实现)

探索处理文本工具“sed”的相关奥妙

第二种方法:
探索处理文本工具“sed”的相关奥妙

原创文章,作者:风之轨迹,如若转载,请注明出处:http://www.178linux.com/85418

(0)
风之轨迹风之轨迹
上一篇 2017-08-26 17:44
下一篇 2017-08-26 18:08

相关推荐

  • #招聘福利#深圳云戈科技有限公司广州分公司/运维工程师/广州/招聘3人

    深圳云戈科技有限公司广州分公司/运维工程师/广州 招聘人数:3人 职位名称:运维工程师 岗位职责:负责大型数据处理系统、交易系统的维护工作。包括系统调优、数据库调优、系统版本升级、系统事件             处理、系统监控与巡检、数据分析与修复、实施应急方案、参数配置、系统扩容与部署、维护报告…

    Linux干货 2016-03-28
  • linux的文件类型

    linux的文件类型 linux其中的一个哲学思想就是一切皆文件,今天我们就来学习一下linux系统中的文件类型。linux不同于windows,有多种多类的文件类型,文件类型的判断也不是以文件的后缀为标准的。linux中一共有七种文件类型,分别是:普通文件、目录、字符设备文件、块设备文件、套接字文件、命名管道文件和符号链接文件。那么接下来我们就分别看看每种…

    Linux干货 2016-10-27
  • Btrfs文件系统的管理和应用

        Btrfs(我们称之为Butter FS或者B-tree FS)被称为新一代的linux文件系统。一直以来,EXT文件系统以其卓越的稳定性成为linux标准的文件系统。但近年来,EXT3暴露出一些扩展性的问题(如单一文件大小限制、总文件系统大小限制等),于是便催生了EXT4。但同时,Btrfs向人们展现出诸多优…

    Linux干货 2016-02-14
  • 2016/10/14日作业

    ##操作类: 1、设置自己的终端提示符,要求字符终端登录时: a> 需要带颜色 b> 需要显示当前执行到了第几条命令 c> 显示当前登录终端,主机名和当前时间 a>export  PS1='[\e[034m\u @\h \w \#]\$ \e[0m'  b>export PS1=&#039…

    Linux干货 2016-10-20
  • linux流程控制if,for,case,while

     Shell编程中循环命令用于特定条件下决定某些语句重复执行的控制方式,有三种常用的循环语句:for、while和until。while循环和for循环属于“当型循环”,而until属于“直到型循环”。循环控制符:break和continue控制流程转向。 选择执行:           …

    Linux干货 2017-03-25
  • FTP服务初探

    FTP FTP概述 FTP原理和模式 vsftpd vsftpd基础服务搭建 vsftpd基于数据库的实现虚拟用户 vsftpd基于mysql实现虚拟用户 常见问题 FTP概述 什么是FTP? FTP是File Transfer Protocol 文件传输协议的缩写,基于网络来传输文件的应用层通信协议。 FTP的功能是什么? FTP能够通过网络来传输文件,因…

    Linux干货 2016-04-28