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)
上一篇 2016-08-11 09:37
下一篇 2016-08-11 09:37

相关推荐

  • shell编程及rpm包

    1. shell编程    case 实现条件判断, 无论是case后面还是值后面都是没有任何标点符号的。    case支持通配符, 如果想要表示其他的话, 可以使用*放到最后。 用*表示其他。   2. 用tar打包的文件或则目录,这些文件或则目录的的ACL(访问控制列表)权限会丢失。…

    Linux干货 2016-08-18
  • centos6开机启动流程以及系统服务配置管理

    内容:   CentOS6 的启动流程   服务管理(chkconfig)   手动制定系统开机服务脚本 一、centos6系统启动流程 综述过程: POST–>BIOS(Boot Sequence)–>MBR(grub,446)–>Kernel–>init…

    Linux干货 2016-09-08
  • Linux磁盘管理(一)之分区、格式化、挂载使用

    磁盘管理(一)   本章节内容: 磁盘结构 分区类型   管理分区   管理文件系统   挂载设备   一、磁盘结构: 1、设备号码:  主设备号:major number, 标识设备类型 次设备号:minor number, 标识同一类型下的不同设备  &n…

    Linux干货 2016-08-26
  • mysql cluster安装部署

    一、安装要求 安装环境:CentOS-6.5-32bit 软件名称:mysql-cluster-gpl-7.2.25-linux2.6-i686.tar.gz 下载地址:http://mysql.mirror.kangaroot.net/Downloads/ 软件包:mysql-cluster-gpl-7.2.25-linux2.6-i686.tar.gz …

    Linux干货 2016-08-22
  • shell脚本编程之判断语句

    一、单分支if语句     格式:if 判断条件;then        statement1        statement2          …     &nb…

    Linux干货 2016-01-01
  • 庆祝马哥成为51cto学院Linux运维金牌讲师第一人

    讲师何其多,金牌只一人(2016免费课程在底部) 某天,小编听到: linuxer1:听说51CTO学院评出了一个Linux金牌讲师!只有一人呢! linuxer2:用腿想,就知道肯定是马哥喽! linuxer3:前段时间马哥又分享了2016最新课时,限时免费学习呢!10086个赞!我和我的好基友们都在学习! linuxer4:马哥的51CTO课程学员都两百…

    2016-04-14

评论列表(1条)

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

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