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

相关推荐

  • 快速删除无用包组

    快速删除无用组 第一步: [root@cloud ~]# yum grouplist >> list.txt 第二步: 编辑 list.txt把需要留下来的删除 第三步: 创建脚本 remove.sh 运行 #/bin/bash # # while read…

    Linux干货 2016-06-09
  • Linux 发展史

    Linux 发展史 一、Linux 系统概述     首先大家需要明白,Linux 只是内核,没有应用程序,如果想有应用程序就需要GNU 组织来提供应用程序,GNU其实就是一个开源组织,这就要说GNU 和GPL 的概念了,其实GNU可以看作就是软件行业的共产党组织 而GPL 就是共产党宣言 为全人类服务。所以说GNU 和 LIN…

    Linux干货 2016-10-19
  • shell脚本编程

    一、编程基础: shell脚本是包含一些命令或声明,并符合一定格式的文本文件 shell脚本的用途有: 自动化常用命令 执行系统管理和故障排除 创建简单的应用程序 处理文本或文件 1)     第一步:使用文本编辑器来创建文本文件 script.sh 并编写内容 格式要求:首行shebang &nb…

    Linux干货 2016-08-15
  • FHS文件系统共能介绍

    FHS文件系统共能介绍   FHS,即File Hierarchy Standard,文件层级标准。多数Linux系统下的文件管理采用此种文件组织形式,它定义了系统中每个区域的用途、所需要的最小构成的文件和目录,同时还给出了例外处理与矛盾处理。   这中组织是一种倒树状结构,所有的文件与目录都是由根目录”/”开始,然后…

    Linux干货 2016-10-18
  • 12.http学习与应用实现

    1、请描述一次完整的http请求处理过程; 1)建立或处理连接:客户端发送http请求报文,服务器端接收或拒绝请求; 2)接收请求:服务器端接收来自客户端对某些资源的请求; 3)处理请求:服务器端解析客户端请求报文,获取客户端请求的资源及请求方法等信息; 4)访问资源:服务器端获取客户端请求的资源; 5)构建响应报文; 6)发送响应报文; 7)日志记录; 2…

    2017-09-20
  • 马哥教育网络班21期+第10周课程练习

    1、请详细描述CentOS系统的启动流程(详细到每个过程系统做了哪些事情) POST –>Boot Sequence(BIOS) –> Boot Loader(MBR) –> Kernel(ramdisk) –>rootfs –>…

    Linux干货 2016-09-19

评论列表(1条)

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

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