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

相关推荐

  • centos7编译安装zabbix

    centos7源码编译安装zabbix3 centos7源码编译安装zabbix3 centos7源码编译安装zabbix3 系统配置和必要的安装包 编译安装nginx 编译安装php 安装MariaDB 安装JDK 安装Zabbix3.0 前戏准备 开始编译 开始安装 zabbix虚拟主机创建 前戏准备 开始编译 开始安装 php配置 前戏准备 开始编译 …

    Linux干货 2016-11-25
  • 往期学员优秀博客范文,供大家参考结构框架和基本格式要求。

    http://123.57.218.140/16152http://123.57.218.140/15668http://123.57.218.140/9255http://123.57.218.140/16666

    Linux干货 2016-11-28
  • Linux发行版的基础目录名称、命名法则及功能规定

    Linux发行版的基础目录名称、命名法则及功能规定 / 主层次的根,也是整个文件系统层次结构的根目录  /bin 存放系统的命令。  /boot 存放系统的启动文件,及其内核。  /dev 系统设备文件主目录。  /etc 系统主要配置文件主目录。  /home 普通用户家目录。  /lib 系统库…

    Linux干货 2016-10-31
  • N25_第二周作业_leon

    第二周博客作业_leon 1.       Linux上的文件管理类命令有哪些?其常用的使用方法及其相关示例演示 常用文件管理类命令有: mkdir、touch、rmdir、cp、rm、mv   mkdir—-创建目录 -m  直接设置权限(非默认权限) -v&nbs…

    Linux干货 2016-12-23
  • linux上RAID的工作方式

    -. RAID是什么?     磁盘阵列(Redundant Arrays of Independent Disks,RAID),是将多块廉价硬盘组合在一起当作一个更大的硬盘使用,利用可以同时对每个硬盘同时进行读写的特性提高计算机对硬盘的读写能力。我们甚至可以空出RAID中的一块或多块硬盘对整个RAID进行数据校验,提…

    Linux干货 2015-12-06
  • 磁盘配额的限制

    用一个块新的分区当做硬盘进行磁盘的配额限制实验 堆一块新的硬盘进行三步骤 分区,格式化,挂载 以/dev/sdb为例  (1) 分区: fdisk /dev/sdb sdb 8:16 0 200G 0 disk └─sdb1 8:17 0 10G 0 part (2) 格式化: mkfs.ext4 /dev/sdb1 /dev/sdb1: UUID…

    Linux干货 2017-04-30

评论列表(1条)

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

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