sed工具

sed是一种流编辑器,它是文本处理中非常中的工具,能够完美的配合正则表达式使用,功能不同凡响。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern
space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有
改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。

sed -n:不输出模式空间内容到屏幕,即不自动打印

sed工具

sed-e: 多点编辑,对每行处理时,可以有多个Script

sed工具

sed-f: 把Script写到文件当中,在执行sed时-f 指定文件路径,如果是多个Script,换行写

sed工具

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

sed工具

sed -i: 直接将处理的结果写入文件,源文件会被更改 建议在将处理的结果写入文件之前备份一份

sed工具


地址定界:
(1) 不给地址:对全文进行处理
    sed -n ‘p’ 文件

sed工具

(2) 单地址:
    #: 指定的行
    sed -n ‘2p’ 文件

sed工具

    /pattern/:被此处模式所能够匹配到的每一行
    sed -n ‘/^1/p’文件

sed工具

(3) 地址范围:
    #,#

sed -n ‘1,3p’

sed工具
    #,+#
    sed -n ‘2,+1p’

sed工具

    /pat1/,/pat2/
    sed -n ‘/redhat/,/linux/p’

sed工具

    #,/pat1/
    sed -n ‘2,/linux/p‘

            同上

(4) ~:步进
    sed -n ‘1~2p’  只打印奇数行

    sed -n ‘2~2p’  只打印偶数行

sed工具

编辑命令

d: 删除模式空间匹配的行,并立即启用下一轮循环
    sed ‘2d’ 文件

sed工具

p:打印当前模式空间内容,追加到默认输出之后
    sed ‘2p’ 文件

sed工具

a [\]text:在指定行后面追加文本,支持使用\n实现多行追加

sed ‘2a\123\n456\n789’ 文件

sed工具

i [\]text:在行前面插入文本
    sed ‘2i\123\n456\n789’ 文件

sed工具

c [\]text:替换行为单行或多行文本
    sed ‘2c\123\n456\n789’ 文件

sed工具

w /path/somefile: 保存模式匹配的行至指定文件
    sed -n ‘3w /root/3.file’ 文件

sed工具

r /path/somefile:读取指定文件的文本至模式空间中匹配到的行后
    sed ‘3r /root/mage.txt’ 文件

sed工具

=: 为模式空间中的行打印行号
    sed ‘=’ 文件

sed工具

!:模式空间中匹配行取反处理
    sed -n ‘2!p’ 文件

sed工具
s///:查找替换,支持使用其它分隔符,s@@@,s###替换标记:

sed工具

g: 行内全局替换

    sed ‘s/dog/cat/g’ 文件

sed工具

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

(0)
李先生李先生
上一篇 2017-08-26 21:03
下一篇 2017-08-26 21:54

相关推荐

  • Docker 之初次体验

    一、Docker 简介  lxc linux container,openvz  容器中各虚拟机只有一个内核,而是多个用户空间  在库中完成虚拟化,比如wine 或者在windows中运行bash  在应用程序的运行级别提供虚拟化,比如jvm   pstree , pid 为1 的进程  …

    Linux干货 2017-02-24
  • Mariadb数据库备份恢复系列(三):xtrabackup物理备份工具之增量备份

       实验三:利用xtrabackup+二进制日志实现增量备份和恢复数据库 本例中实现的是将所有的增量日志都通过apply-log的步骤同步到完全备份文件中,如果希望利用增量日志还原到固定某次增量备份的数据,则不能使用本例中方式对所有的备份都进行apply-log操作,如果希望利用增量日志还原到固定哪次增量备份的数据,则将最初的完全备份的数据、和期望还原到某…

    Linux干货 2016-11-24
  • TCP三次握手和四次挥手

    TCP三次握手 有两台机器,A是客户端(主动发起请求的人),B是服务器端(被动接受请求的人),客户端A刚开始没有人和他通讯,所以客户端A的状态是CLOSDE(关闭的),服务器端B刚开始的状态也是CLOSDE,但是总有人去访问他,所以服务器端B开启了LISTEN(收听)状态。 (1)假设A机器想链接B机器了,他就会向B机器发送一个建立链接的请求,这个建立链接请…

    2017-08-31
  • 软件包管理之yum

    本节主要是对linux软件包管理中的yum的浅解 1、冒泡法对数组内数据排序 2、博客:        yum命令浅解    yum [options] [command] [package …]      …

    Linux干货 2016-08-25
  • LAMP+logzilla+sphinx+syslog-ng实现集中日志管理(第一版)[原创]

    一、前言        目前查看系统日志比较被动,遇到系统不正常或故障时才会主动去检查服务器系统日志,这样一来不能及时了解系统的运行情况,因此部署Logzilla+sphine+syslog-ng来弥补这不足。以下为安装、部署平台详细步骤。(Logzilla是什么新东西?其实前身就是php-syslog-ng,引用作者…

    Linux干货 2015-03-27