bash - 没有日期的日期匹配行
问题描述
好的,我有一个过滤购买日期的大日志文件。
ps6100-01:SP:12-Nov-2014 15:00:02 I am broken help me
ps6100-01:SP:12-Nov-2014 15:00:02 I am broken help me i got to much to say
so I continue on the next line of the file
ps6100-01:SP:12-Nov-2014 15:00:02 I am broken help me
ps6100-01:SP:12-Nov-2014 15:00:02 I am broken help me
ps6100-01:SP:11-Nov-2013 15:00:02 I am fine
ps6100-01:SP:11-Nov-2013 15:00:02 I am fine
我正在使用它来提取当前年份的事件
CurYear=`date | awk '{ print $6 }'`
perl -ne "print if /-$CurYear/" $file
没有日期的线根本不会被拉动。所以如果运行我的声明,我想要这个。
ps6100-01:SP:12-Nov-2014 15:00:02 I am broken help me
ps6100-01:SP:12-Nov-2014 15:00:02 I am broken help me i got to much to say
so I continue on the next line of the file
ps6100-01:SP:12-Nov-2014 15:00:02 I am broken help me
ps6100-01:SP:12-Nov-2014 15:00:02 I am broken help me
但是我得到了这个,有时它有几行,所以我在输出中遗漏了一些关键的东西。
ps6100-01:SP:12-Nov-2014 15:00:02 I am broken help me
ps6100-01:SP:12-Nov-2014 15:00:02 I am broken help me i got to much to say
ps6100-01:SP:12-Nov-2014 15:00:02 I am broken help me
ps6100-01:SP:12-Nov-2014 15:00:02 I am broken help me
解决方案
你可以为此使用 perl
这假设 ps6100 对所有有日期的行都是通用的,如果不是所有行都通用,您可能需要将其更改为其他正则表达式
perl -ne 'chomp; /$ENV{"CurYear"}/ && do {print "\n$_"; $x=4}; --$x > 0 && $_ !~ /ps6100/ && print' file.log
推荐阅读
- javascript - 如何将 XML 数据插入 HTML?
- java - 如何检查具有多列子查询的查询的单列?
- r - 如何将日期时间列从“非UTC”格式转换为“UTC”格式,而不会丢失R中时间变化的日子里的数据
- gps - 如何从 GPS 获取 NED 速度?
- swift - 添加子视图并放在前面,但仍未显示
- javascript - 如何在反应中修复“无法读取未定义的属性'评论'”
- reactjs - 如何使用 Gatsby 从 Contentful Rich Text 字段调用和使用嵌入式资产?
- android - 播放和暂停 Flutter 动画
- html - 如何在另一个 *Ngfor 中使用 *Ngfor
- python - np.argsort() 排名靠前