N25第八周学习总结_sed命令详解

sed使用详解

大纲:

1、    sed是什么

2、    为什么要使用sed

3、    sed使用方法

4、    sed详解

 

正题:

1、    sed是什么

sed全名Stream Editor,是Linux下一条命令,也是文本处理三剑客之一的流编辑器,主要对行进行处理。

 

2、    为什么要使用sed

sed功能强大,使用灵活,而且支持正则表达式,不仅可对数据进行删除、替换、修改、插入,而且可以通过地址定界来对范围内的行进行编辑,大大提高了工作效能,省去手工操作的繁琐与失误率。

3、    sed使用方法

sed 主要由四部分组成:命令主体、选项、处理方式、待处理的文件,使用格式为:

        sed  [OPTIONS]  ‘SCRIPT’ 
FILE

4、    sed详解

      N25第八周学习总结_sed命令详解          

sed命令的使用格式:

  sed  [OPTION]  ‘SCRIPT’ 
FILE

 

OPTION:

     -n不输出模式空间中未被匹配和默认输出的内容至屏幕(只输出匹配的内容)

     -e
script
实现多点编辑,即可增加多个’script’ 例如:

           sed -n  -e ‘/etc/s/fstab/FSTAB/’ -e ‘1~2p’ /etc/fstab

     -f
/PATH/SED_CRRIPT_FILE
从其他文件中读取编辑命令,即读取script

           注:写有script的文件中不需要单引号,直接写script

     -r支持使用扩展表达式:默认只能用基本正则,使用-r后可以用扩展正则。

     -i直接编辑原文件,慎用。

 

‘SCRIPT’:

      SCRIPT由两部分组成,地址定界+编辑命令

          

           地址定界:主要来判定处理的行范围,默认为全部

(1)   空地址:对全文进行处理

(2)   单地址:

#指定行

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

(3)   地址范围:

#, # :         从指定的行数到指定的行数;

#, +#     从指定的行数到几行之后;

#, /parttern/ 从指定的行数到匹配到此模式的行;

/parttern1/, /parttern2/ 从匹配到1的模式的行到匹配到2的模式的行;

(4)   步进:

x~y:设x为起点,每次向前移动y步;

      例如:

1~2 : 所有的奇数行;

2~2 : 所有的偶数行;

      

                 编辑命令:主要作用是针对匹配到的数据该如何处理;

 

                      文本的删除和显示:

                      d删除(行),主要针对行的删除;

                      p显示模式空间的内容,如果不加选项-n,匹配到模式空间的内容会重复显示;

 

                      文本的添加和替换:

                            a
\text:
在指定或匹配行后面追加文本“text”
支持使用\n实现多行追加

                             i \text 在指定或匹配行前追加文本“text”,支持使用\n实现多行追加;

                            c \text:  将指定或匹配的行替换为“text”

                            s/// : 查找替换(行内编辑),支持基本正则表达式,可将查找出来的数据段替换、更改、删除,其分隔符可自行设定,常用有:s@@@, s###

                                  g全局替换;默认只会替换匹配到的第一段数据;

                                  w /PATH/TO/SOMEFILE:将替换成功的结果保存至指定文件中;

                                  p显示替换成功的行;

                                       注:使用方法同vim中命令模式中的查找替换。

 

                      文本的导入与导出:

                            w
/PATH/TO/SOMEFILE :
保存模式空间匹配到的行到指定文件中;

r /PATH/FROM/SOMEFILE读取指定文件的内容至当前文件被模式匹配到的行后面;文件合并;

 

                      其他:

                            =为模式匹配到的行打印行号;

                            !:条件取反,使用方法是在编辑命令前,没有空格:

                                       sed
‘1~3!p’ /etc/fstab      

 

      综合实战:

以上是sed各参数的详细说明,只用通过各种案例才能将sed命令牢牢掌握,以下是一些常用的使用方式:

 

                 1、删除/boot/grub2/grub.cfg文件中所有以#开头的行的行首的所有#号与空白字符;

            N25第八周学习总结_sed命令详解

 

      2、删除/etc/fstab/文件中的偶数行,并且在没有#号的奇数行首加#

            N25第八周学习总结_sed命令详解

 

3、输出一个绝对路径给sed命令,取出其目录,其行为类似于dirname

         echo /etc/httpd/conf/
|sed ‘s@[^/]\+/*$@@’

/etc/httpd/

 

 

     4、   nologin 的用户信息导出至 /root/nologin.txt

N25第八周学习总结_sed命令详解

 

 

   5、  /etc/fstab中所有以#开头的行更改为#magedu.com

N25第八周学习总结_sed命令详解

原创文章,作者:N25_韩奇洋,如若转载,请注明出处:http://www.178linux.com/70097

(0)
N25_韩奇洋N25_韩奇洋
上一篇 2017-02-26 14:12
下一篇 2017-02-26 17:51

相关推荐

  • iptables 实现应用层过滤

        在linux环境中,工作于内核空间的netfilter和工作于用户空间的iptables共同组成了其功能强大且操作灵活的防火墙系统,对进出主机或内外网之间的流量基于IP地址、通信协议、端口以及连接状态等进行管控,然而,对于一些使用非固定端口或者通信协议的应用程序,默认是没有办法做限制的,比如聊天软件QQ、下载工具迅雷等,不过我们可…

    Linux干货 2015-07-10
  • bind的安装实现

    首先介绍一下我的测试环境:centos 7+入网(为了试行一下自己的安装文档,才装的虚拟机) 1> yum install bind bind-chroot -y     因为刚刚安装的虚拟机,这里我就不检查了; 2>vim named.conf [root@localhost named]# cat /e…

    Linux干货 2016-03-20
  • linux第五周小结

    不知不觉已经第五周了,好快啊!这周我们主要讲了读命令,查找命令,压缩,解压缩,安装等命令,今天我总结一下查找命令 查找命令主要有:locate和find命令,但我们经常用到的也最实用的当属find,下面我重点总结一下find命令 有时可能需要在系统中查找具有某一特征的文件(例如文件权限、文件属主、文件长度、文件类型等等)。这样做可能有很多原因。可能出于安全性…

    2017-08-13
  • 基于LNMP架构添加Memcached支持,并验证其缓存结果

    一 Memcached简介 Memcached是一个自由开源的,高性能,分布式内存对象缓存系统。它是一种基于内存的key-value存储,用来存储小块的任意数据(字符串、对象)。这些数据可以是数据库调用、API调用或者是页面渲染的结果。 Memcached简洁而强大。它的简洁设计便于快速开发,减轻开发难度,解决了大数据量缓存的很多问题。它的API兼容大部分流…

    Linux干货 2016-12-12
  • 第二周作业

    作业

    Linux干货 2018-03-20
  • linux磁盘管理之LVM

                        LVM  LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁…

    Linux干货 2016-09-09

评论列表(1条)

  • 马哥教育
    马哥教育 2017-03-15 01:11

    赞~~思路比较清晰~后面操作的部分建议使用markdown来展示会更好~~加油