Linux命令之sed

SED(Stream Editor)是一种非交互式的流编辑器,修改流经它的文本内容。sed处理文本时是以行为单位,每处理完一行就会立即打印出来,然后再处理下一行。

默认条件下,sed所有操作只是对“流”的操作,因此不会改变源文件,可通过输出重定向保存处理后的结果或者通过-i参数直接修改源文件本身。

sed [options] 'command' filename 或sed [options][-f<script文件>] filename

options是指sed的命令行参数,sed从filename标准输入。如果操作比较复杂,为了简便,可以把命令写到文件中,然后-f参数调用。

-f<script文件> 以选项中指定的script文件来处理输入的文本文件。

[options]:

  • -h或--help 显示帮助。
  • -n或--quiet或--silent 仅显示script处理后的结果。
  • -V或--version 显示版本信息

 

动作说明:

a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~

c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!

d :删除,因为是删除啊,所以 d 后面通常不接任何咚咚;

i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);

p :打印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行~

s :取代,可以直接进行取代的工作。

 

使用sed在文本中定位文本的方式:
x        x为一行号,比如1
x,y     表示行号范围从x到y,如2,5表示从第2行到第5行
/pattern/    查询包含模式的行,如/disk/或/[a-z]/
/pattern/pattern/   查询包含两个模式的行,如/disk/disks/
/pattern/,x   在给定行号上查询包含模式的行,如/disk/,3
x,/pattern/   通过行号和模式查询匹配行,如 3,/disk/
x,y!     查询不包含指定行号x和y的行

 

1、查看日志文件中某一段时间的日志

 sed -n  '/起始时间/,/结束时间/p'  日志文件

 例如,sed -n '/2018-11-06 18:00:00/,/2018-11-06 18:00:10/p'  test.log

显示 2018-11-06 18:00:00到2018-11-06 18:00:10之间的日志。-n 是只打印匹配的行(不打印没有处理的行)

 

 

参考:

linux文本截取与处理之sed

Linux sed命令

sed 指定行范围匹配

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值