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

相关推荐

  • class14磁盘管理(一)

    一、硬盘基础知识及分区类型 1、磁盘结构 设备文件 I/O Ports: I/O 设备地址 一切皆文件:   open(), read(), write(), close() 设备类型: 块设备:block,存取单位“块”,磁盘 字符设备:char,存取单位“字符”,键…

    Linux干货 2016-08-29
  • 马哥教育网络班21期-第五周课程练习

    1、显示/boot/grub/grub.conf中以至少一个空白字符开头的行; # grep -E "^[[::space]]\+.*" /boot/grub/grub.conf 2、显示/etc/rc.d/rc.sysinit文件中以#开头,后面跟至少一个空白字符,而后又有至少一个非空白字符的行;…

    Linux干货 2016-08-08
  • linux文件基本权限、默认权限、隐藏权限和ACL权限

    基本权限    文件属性rwx     每个文件当用ls -l查看时,都会显示文件的详细属性信息,其中在排在首位的共有10位字符信息     例如 -rw-r–rw-. 1 root root …….. 共有10位,第一位代表的是文件的类型,后边9位表示的是文件的…

    Linux干货 2016-08-04
  • 第二周的作业

    1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。 命令:ls NAME:用于列出目录的内容; SYNOPSIS:ls [OPTION]… [FILE]… FILE: 如果FILE是个文件的话,则显示文件名; 如果FILE是个目录的话,则列出目录的内容; OPTION: -l:显示长格式的信息,一共包含了7个…

    Linux干货 2016-11-23
  • 管理systemd

    管理systemd 一、systemd介绍 回顾一下centos的启动流程  POST –> Boot Sequence –> Bootloader –> kernel + initramfs(initrd) –> rootfs –> /sbin/init 在…

    Linux干货 2016-09-22
  • 8/10作业脚本

    1、编写脚本/root/bin/systeminfo.sh,显示当前主机系统信息,包括主机名,IPv4地址,操作系统版本,内核版本,CPU型号,内存大小,硬盘大小。 2、编写脚本/root/bin/backup.sh,可实现每日将/etc/目录备份到/root/etcYYYY-mm-dd中 3、编写脚本/root/bin/disk.sh,显示当前硬盘分区中空…

    Linux干货 2016-08-15

评论列表(1条)

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

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