sed使用详解

vim  ,sed

1.首先,sed作为一个流编译器,它是对文本进行处理的,它和grep虽然都是对文本进行处理的,但是sed的处理机制和grep还是有很大的不同的,grep:文本过滤(模式:pattern)工具;grep, egrep, fgrep(不支持正则表达式搜索)sed:stream editor,文本编辑工具;awk:Linux上的实现gawk,文本报告生成器。sed处理文本是一次处理一行的内容,把需要处理的行存储到临时缓冲区,称为“模式空间”,再sed处理缓冲区中的内容,而后,把处理后的内容输出到屏幕。 

sed的格式为:

sed [option] … 'script' inputfile

-n :不输出模式空间内容的自动打印,常与 -p 配合使用

-e :多点编辑,就是-e …-e … 进行多条件匹配。

-r :是支持扩展正则表达式

-i :原处编辑;sed默认是岁对文件进行复制到模式空间内再进行编译,使用-i选项后,sed是直接对原文件进行的修改。

script :地址定界

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

(2).单地址: #:指定的行 ;/pattern/ :被此处模式所能够匹配到的每一行

(3).地址范围:

    #,#   从第一个#代替的数到第二个#代替的数的行

    #,+# 

    /pat1/,/pat2/

    #,/pat1/: 从#号开始到第一次能匹配结束

(4). 步进地址  ~

    1~2  :指从第一行开始每次步进两行,1,3,5,7…奇数行编辑命令:

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

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

    a \text:在行的后面追加文本,支持使用\n实现多行追加。

    i \text:在行的前面插入文本,支持使用\n实现多行插入

    c \text:替换行为单行或多行文本

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

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

    = :为模式空间中的行打印行号

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

    s / / / :查找替换,支持使用别的分隔符,s@ @ @,s # # # 这样的。  替换的标记 :g :行内全局替换p :显示替换成功的行  w /path/tosomefile :将替换成功的行保存至文件中。sed1.png

sed2.png

sed3.png

——————————————————————————————–

sed 基础练习: # 对于文件的操作可以先使用cat查看一下文件中的内容,以便对sed显示后作为对比,观察结果。

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

sedtest1.png

2、删除/etc/fstab文件中所有以#开头,后面至少跟一个空
白字符的行的行首的#和空白字符
 

sedtest2.png

3、在/etc/passwd每一行行首增加#号

sedtest3.png

 

4、在/etc/fstab文件中不以#开头的行的行首增加#号

 sedtest4.2.png

5、处理/etc/fstab路径,使用sed命令取出其目录名和基名

 sedtest5.png

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

sedtest6.png

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

(0)
zhongzhong
上一篇 2016-08-11 09:37
下一篇 2016-08-11 09:37

相关推荐

  • 软链接与硬链接的区别

      这两牵扯到链接,那么先介绍以下链接。   在文件系统中,有一种可以把不同的文件相连接到一起的机制,这个机制叫做链接。通俗的话来说就是打开两个不同的文件夹,其实进去的是同一个。它可以把一个文件用不同的名字和路径来表示出来。系统通过inode(索引节点,文件唯一标识)来识别是否为同一个文件,无论系统上有有多少个链接,在磁盘上只有一个唯一的…

    2017-05-25
  • 网络实验

    一、子网划分 1、某公司申请到一个C 类IP 地址,但要连接6 个的子公司,最大的一个子公司有26 台计算机,每个子公司在一个网段中,则子网掩码应设为? 使用27位子网掩码一共可以分出8个子网 每段32个地址;每个子网有30个可用地址 0-31 32-63 64-95 96-127 128-159 160-191 192-223 224-255 2、一家集团…

    Linux干货 2016-09-09
  • 马哥教育网络班21期第六周作业

    详细总结VIM编辑器的使用并完成以下练习题 1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加# cp /etc/rc.d/rc.sysinit /tmp vim /tmp/rc.sysinit :%s/^[[:space:]]\+/#/…

    Linux干货 2016-08-22
  • 封装和结构及set

    封装|set

    Linux干货 2017-10-09
  • 设计模式(十一)代理模式Proxy(结构型)

    1.概述        因为某个对象消耗太多资源,而且你的代码并不是每个逻辑路径都需要此对象, 你曾有过延迟创建对象的想法吗 ( if和else就是不同的两条逻辑路径) ? 你有想过限制访问某个对象,也就是说,提供一组方法给普通用户,特别方法给管理员用户?以上两种需求都非常类似,并且都需要解决一个更大的问题:你如何提供…

    Linux干货 2015-07-09
  • 看了还想看—普通权限及umask

        权限在操作系统是尤为重要的,无论是windows和linux中,都少不了权限这么一说,权限的大小决定了你能操作些什么,在linux中,权限对目录和文件的意义是不同的,并且还有特殊权限。今天,我们就来说说一说权限在linux中的重要性以及权限操作命令。     权限:权限决…

    Linux干货 2016-08-03

评论列表(1条)

  • 马哥教育
    马哥教育 2016-08-12 09:48

    文章对sed的常见用法有了一个完整的总结,有理论也有自己的操作,可以尝试着用图来解释sed的工作原理,这样会看起来更清晰哦