我对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脚本,但是当我尝试使用分钟范围作为正则表达式时,它现在正在工作。
grep Exception coms-core.log |头-1 | gawk -F'[''$ 2~ / ^ 2014-01-26 [00]:[0-59] / {print $ 2}'
答案 0 :(得分:1)
试试这个awk:
gawk -F '[' '$0 ~ /Exception/ && $2 ~ /^2014-01-26 16:/ {print $2}' coms-core.log
答案 1 :(得分:0)
正则表达式用正斜杠(/expr/
)表示。
答案 2 :(得分:0)
使用find命令 -
查找过去1小时内的异常 找到。 -maxdepth 1 -mmin -60 -name'coms-core.log'-exec grep -wi'exception'{} \; 2 - ;的/ dev / null的