文档章节

Shell脚本 打印匹配行的上一行

zgw06629
 zgw06629
发布于 2015/04/29 19:22
字数 213
阅读 254
收藏 0

如有这样的访问url日志(access.log),若访问某个url失败了,会打印一行访问失败信息。

http://a.com
WARN 404 access fail
http://b.com
http://c.com
WARN 405 access fail
http://d.com
http://e.com
WARN 500 access fail

现在想得到那些访问失败的url,可以通过如下的脚本来得到:

sed -n '{/access fail/{g;p}};h' access.log

输出为:

http://a.com
http://c.com
http://e.com

解释(来自运维同事):

sed 会逐行处理文件, 首先判断该行是否匹配(或包含)access fail关键字,

若没有匹配,仅执行h,即将该行以覆盖方式放到后台(一个缓冲区);

若匹配上了,则执行后面的命令({g;p}),g表示将后台内容挪到前台来(即将上一行覆盖当前行内容),p打印该行。


© 著作权归作者所有

共有 人打赏支持
zgw06629
粉丝 16
博文 54
码字总数 30471
作品 0
海淀
程序员
初识sed与gawk

博文阅读 学习内容: 学习sed编辑器 gawk编辑器入门 sed编辑器基础 shell脚本最常见的一个用途就是处理文本文件,但仅靠shell脚本命令来处理文本文件的内容有点勉为其难。如果我们想在shell...

王诗翔
2017/12/26
0
0
shell脚本扩展

一、正则表达式: 正则表达式(或称Regular Expression,简称RE)就是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式。该模式描述在查找文字主体时待匹配的一个或多...

何小帅
2017/03/10
0
0
Sed 命令详解.

Sed简介 sed 是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲...

孙哲
2016/08/11
85
0
Linux Shell 文本处理工具集锦

Linux Shell 文本处理工具集锦 本文将介绍Linux下使用Shell处理文本时最常用的工具: find、grep、xargs、sort、uniq、tr、cut、paste、wc、sed、awk; 提供的例子和参数都是最常用和最为实用...

平凡之路
2014/10/13
0
0
第十八章 文本处理流编辑器:sed命令

第十八章 文本处理流编辑器:sed命令 名词解释 sed 是一种流编辑器,它是文本处理常用到的工具,能够完美的配合正则表达式使用,功能不同凡响。处理时,把当前处理的行存储在临时缓冲区中,称...

506554897
07/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

RabbitMq异常处理

1.查找指定文件位置 find . -name "*erlang.cookie" 2.Rabbitmq异常 ===========根据提示,应该是Erlang的cookie出现问题 attempted to contact: ['rabbit@DESKTOP-RVK1IHE'] rabbit@DESKTO......

zhaochaochao
6分钟前
0
0
Java虚拟机学习笔记

jconsole的连接 JConsole的远程连接 JConsole远程连接配置(用VisualVM进行远程连接的配置和JConsole是一摸一样滴) JVM之jconsole远程连接配置...

OSC_fly
6分钟前
0
0
区块链教程以太坊源码分析downloader-peer源码分析

  兄弟连区块链教程以太坊源码分析downloader-peer源码分析,区块链行业正逐渐褪去发展之初的浮躁、回归理性,表面上看相关人才需求与身价似乎正在回落。但事实上,正是初期泡沫的渐退,让...

兄弟连区块链入门教程
8分钟前
0
0
ubuntu 自定义记录用户登录以及操作日志

root@ms:~# cd /etc#更改之前先备份,养成良好的习惯,否则肠子都要悔青了root@ms:/etc# cp profile profile.bakroot@ms:/etc# vi profile 在文章末尾加入下列shell脚本 history US...

Marhal
8分钟前
0
0
liunx 下使用rpm进行软件卸载

rpm -qa | grep php 列出所有的php相关的rpm包 rpm -e xxx 删除包

bengozhong
9分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部