【问题标题】:Need to grep data between line [Oct 13 2015, 16:10:16] and [Oct 13 2015, 16:10:20] using grep or awk or perl [closed]需要使用 grep 或 awk 或 perl 在 [Oct 13 2015, 16:10:16] 和 [Oct 13 2015, 16:10:20] 行之间 grep 数据 [关闭]
【发布时间】:2015-10-13 23:54:43
【问题描述】:

我需要使用 grep 或 awk 或 perl 在 [Oct 13 2015, 16:10:16] 和 [Oct 13 2015, 16:10:20] 行之间 grep 数据

[2015 年 10 月 13 日,16:10:16] 启动脚本1 script1 进行中



[2015 年 10 月 13 日,16:10:20] 启动脚本2 脚本2进行中



【问题讨论】:

  • 问题是否在于您有一个文本文件,其中行以您指定格式的日期开头,例如日志文件,并且您想 grep 出特定范围? (您能否将问题编辑得更清楚一点?)如果是这种情况,您可以做的比仅仅找出“[2015 年 10 月 13 日,16:10:”并处理您不想要的秒数更糟糕。或者您可以添加必要的正则表达式以使其更具体 - 例如 [16|17|18|19|20]。 egrep 使用正则表达式,但您必须做一些工作才能将它们转义以使它们通过 shell。

标签: regex perl awk grep


【解决方案1】:

当然你不需要正则表达式,你可以检查相等性,但是你把正则表达式放在你的标签中......

perl -e '$show=0; while (<STDIN>) { $show = 1 if $_ =~ /^\[Oct 13 2015, 16:10:16\]/; print $_ if $show; $show = 0 if $_ =~ /^\[Oct 13 2015, 16:10:20\]/; }'  < log

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-16
    • 2015-07-28
    • 2019-07-23
    • 2020-03-17
    • 2020-05-03
    • 1970-01-01
    • 1970-01-01
    • 2016-01-18
    相关资源
    最近更新 更多