借助尴尬,在特定时间范围内获取所有例外



我是awk的新手,正在努力找出特定时间范围内的所有例外。

以下是日志,

[2014-01-26 00:16:54.244][VendorProductFileProcessor-process-1][WARN] [VendorProductFileTranslatorTask:210] Failed to process vendor data: {INTERNALCASHBACKSNAPDEALSPONSOREDPERCENTAGE=#REF!, VENDOR CODE=#REF!, INTERNALCASHBACKENDDATE=#REF!, INTERNALCASHBACKTYPEVALUE=#REF!, EXTERNALCASHBACKSTARTDATE=#REF!, SKU=#REF!, EXTERNALCASHBACKTYPEVALUE=#REF!, EXTERNALCASHBACKENDDATE=#REF!, EXTERNALCASHBACKTYPE=#REF!, EXTERNALCASHBACKSNAPDEALSPONSOREDPERCENTAGE=#REF!, INTERNALCASHBACKSTARTDATE=#REF!, INTERNALCASHBACKTYPE=#REF!}, com.snapdeal.coms.exception.RuntimeErrorException: COMS-1113: Failed to translate attribute : intCashbackTotalValue value: Unparseable number: "#REF!"

现在,我试图打印所有例外情况,发生在过去1小时内。我正在使用以下awk命令

grep Exception coms-core.log | gawk -F '[' '{ if ($2 ~ 2014-01-26 00:[0-59]:[0-59])print $2}'

但是我在执行它时会例外

gawk: { if ($2 ~ 2014-01-26 00:[0-59]:[0-59])print $2}
gawk:            ^ backslash not last character on line

有人可以在这里帮我吗?

在Anubhava的答案的帮助下,使用以下AWK脚本,但是当我尝试将分钟范围用作Regex时,它现在正在工作。

grep exception coms-core.log |头-1 |gawk -f'[''$ 2〜/^2014-01-26 [00]:[0-59]/{打印$ 2}'

尝试以下尴尬:

gawk -F '[' '$0 ~ /Exception/ && $2 ~ /^2014-01-26 16:/ {print $2}' coms-core.log
  • 您不需要GREP,因为Awk也可以处理该部分
  • 您的尴尬语法不正确

正则表达式用前向斜线表示( /expr/)。

使用查找命令 -

在过去1小时内找出异常

查找。-maxDepth 1 -mmin -60 -name'coms -core.log'-exec grep -wi'异常'{} ;2>/dev/null

相关内容

  • 没有找到相关文章

最新更新