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
下一篇 2017-02-26

相关推荐

  • httpd功能配置之虚拟主机

       apache默认使用80端口提供服务,使用主服务器配置的话,一台物理机只能提供一个站点服务;可以使用虚拟主机方式提供不同的访问,以实现一台主机提供多站点服务。    虚拟主机的实现方式有三种:基于端口、基于IP、基于主机名。    一、基于端口的虚拟主机     &nbsp…

    Linux干货 2016-03-12
  • Linux硬链接和软链接

    标签:    inode    软链接    硬链接 一、ionde及inode编号   在计算机中,信息一般以扇区(sectors)的形式存储在硬盘上,而每个扇区包括512个字节的数据和一些其他信息(即一个扇区包括两个主要部分:存储数据地点的标识符和存储数据的数据段)。操作系统…

    Linux干货 2016-10-20
  • 常用的shell命令

    硬件: 1.cpu相关 lscpu:查看cpu的统计信息 cat /proc/cpuinfo :查看cpu详细信息,如每个cpu的型号 2.内存相关 free -m:概要查看内存情况,这里的单位是MB cat  /etc/meminfo   :查看内存详细信息 3.磁盘相关: l…

    Linux干货 2016-08-22
  • HAproxy reload config file with uninterrupt session

    HAProxy is a high performance load balancer. It is very light-weight, and free, making it a great option if you are in the market for a load balancer and need to keep your cos…

    Linux干货 2015-04-03
  • Apache配置压缩优化时报错——undefined symbol: inflateEnd

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://nolinux.blog.51cto.com/4824967/1345264    圣诞都过了,好久没来51发博文了。最近一直在忙考试和其他一些私人事务,感觉长期不发博文,有点不好。不是不发,实在是最近…

    Linux干货 2016-08-15
  • netstat

    netstat命令 netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等 1 常用选项: -a :(all)显示所有选项,默认不显示LISTEN相关 -t :(tcp)仅显示tcp相关选项 -u :(…

    Linux干货 2017-05-07

评论列表(1条)

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

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