Linux三剑客之sed命令

一.sed命令概述

Stream EDitor ,行编辑器

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

二.sed工具的用法:

sed [option]… ‘script’ inputfile…

 

常用选项:

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

-e 多点编辑

-f /PATH/SCRIPT_FILE 从指定文件中读取编辑脚本

-r 支持使用扩展正则表达式

-i 原处编辑(慎用)

                                              blob.png

blob.png

script:

‘地址命令’

地址定界:

1) 不给地址:对全文进行处理

2) 单地址:#:指定的行

/pattern/:被此处模式所能够匹配到的每一行

blob.png

3) 地址范围

#,#

#,+#

blob.png

/pat1/,/pat2/

 

#,/pat1/

4)~:步进

1~2奇数行

2~2偶数行

blob.png

 

 

编辑命令:

d:删除模式空间匹配到的行

blob.png

blob.png

 

 

p:显示模式空间中的内容

blob.png

blob.png

a \text :在行后面追加文本;支持使用\n实现多行追加

blob.png

I \text :在行前面插入文本;支持使用\n实现多行插入

blob.png

c \text :替换行为单行或多行的文本

blob.png

w /path/somefile :保存模式匹配的行至指定文件

blob.png

 

r /path/somefile :读取指定文件的文本至模式空间中匹配到的行后

blob.png

=:为模式空间中的行打印行号

blob.png

!:模式空间中匹配行取反处理

blob.png

 

sed工具

s///:查找替换,支持使用其他分隔符,s@@@,s###

s/string1/string2

blob.png

替换标记:

g:行内全局替换

blob.png

p:显示替换成功的行

blob.png

w /PATH/TO/SOMEFILE: 将替换成功的行保存至文件中

blob.png

三.sed 高级编辑工具

h:把模式空间中的内容覆盖至保持空间中

 

H:把模式空间中的内容追加至保持空间中

g:从保持空间取出数据覆盖至模式空间

                                              blob.png

G:从保持空间取出内容追加至模式空间

blob.png

blob.png

x:把模式空间中的内容与保持空间中的内容进行互换

n:读取匹配到的行的下一行覆盖至模式空间

blob.png

blob.png

N:读取匹配到的行的下一行追加至模式空间

blob.png

d:删除模式空间中的行

blob.png

D:删除当前模式空间开端至\你的内容(不再传至标准输出),放弃之后的命令,但是对剩余模式空间重新执行sed

 

 

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

赞 (0)
KartikKartik
上一篇 2016-08-15 09:26
下一篇 2016-08-15 09:26

相关推荐

  • issue设置和定时关机练习

    /etc/issue内的代码意义 \l 显示第几个终端机接口(tty)\m 显示硬件的等级 (x86_64)\n 显示主机的网络名称 (zcl-domain)\r 操作系统的版本 (2.6.32-642.e16)\t 显示本地端时间的时间(20:22:12) \d显示本地端的日期 (2016-8-5)\s 操作系统的名称(linux)  练习 1,…

    Linux干货 2016-08-05
  • 解决线上服务器httpd无法反向代理resin的解决方法

    一、简述   前两天有后端的小伙伴跟我反映说使用httpd反向代理resin时遇到的问题,在做网站管理后台的时候,发起的http的put,delete的请求无法经由resin传递到后面的dbserver。当时的第一反应就是httpd的反向代理设置出现的问题,但是关于httpd反代resin的内容在网上机会搜索不到。于是,查看httpd反代tomca…

    Linux干货 2017-01-11
  • Linux-文件系统挂载:mount的用法

     文件系统挂载  本章详细介绍文件系统挂载、卸载(mount,umount);  如何通过mount命令挂载使用文件系统、挂载常用参数、以及开机自动挂载(/etc/fstab)。    挂载描述:             挂载:将额外文件系…

    2017-06-19
  • 文件系统结构

    -文件系统结构
    -应用程序的组成部分
    -文件类型

    2018-03-13
  • 第10天:程序包,脚本,sed

    http://note.youdao.com/yws/public/redirect/share?id=b9432a76ff1180b42e01f6eb7c9fc90e&type=false

    Linux干货 2016-08-18
  • 基于NFS服务的mariadb数据库实现

    实验要求:     (1) nfs server导出/data/目录;     (2) nfs client挂载/data/至本地的/mydata目录;本地的mysqld或mariadb服务的数据目录设置为/mydata, 要求服务能正常启动,且可正常 存储数据;   (3)用另一台主机,…

    2017-06-11