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
下一篇 2016-08-11

相关推荐

  • N27—第十周作业

    N27_第十周作业 1、请详细描述Centos系统的启动流程(详细到每个过程系统做了哪些事情) 详情请参考http://www.178linux.com/85713 2、为运行于虚拟机上的Centos 6添加一块新的硬盘,提供两个主分区; (1)为硬盘新建两个主分区;并为其安装grub (2)为硬盘的第一个主分区提供内核和ramdisk文件;为第二个分区提供…

    Linux干货 2017-10-21
  • find用法及德·摩根定律

    德·摩根定律   奥古斯都·德·摩根首先发现了在逻辑命题中存在着下面这些关系:      非(P且Q)=非P或非Q      非(P或Q)=非P且非Q 上述逻辑命题可以解释为:    not ( P and Q)=not P or not Q    …

    Linux干货 2016-08-18
  • 开篇

    新人报道

    Linux干货 2016-10-24
  • Linux磁盘管理(分区,格式化,文件系统、VFS、mount、fstab)

    Linux系统中数据存储在磁盘中,磁盘在冯诺依曼体系中属于输入输出外部存储对象,保存着重要的企业数据,对Linux系统中的磁盘管理尤其需要熟练掌握,由于企业目前使用的主流存储设备还是硬盘,所以这里只叙述硬盘的组织结构; 1.分区:    (1)低级格式化:       硬盘在出厂的时候厂家会做一次分区格式化,…

    Linux干货 2016-09-02
  • 磁盘及文件系统管理—第二篇

    挂载配置文件 每行定义一个要挂载的文件系统及相关属性     使用mount -a挂载/etc/fstab文件中所定义的文件系统     配置文件格式:         一共分为6个字段: &nbsp…

    Linux干货 2016-08-30
  • grep与正则表达式

    grep与正则表达式 grep与正则表达式 grep 正则表达式 grep 使用语法:grep [-abcEFGhHilLnqrsvVwxy][-C<显示列数>][-e<范本样式>][-f<范本文件>][范本样式][文件或目录…]  功能说明:查找指定文件或标准输入里符合条件的字符串 常用选项 -a…

    Linux干货 2016-11-05

评论列表(1条)

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

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