我正在运行awk命令从日志文件中提取数据以使用以下命令计算最后15分钟的日志,现在我收到了以下错误:
awk '$0>=$from' from=$(`date -u +"####<%d-%b-%Y %H:%M:%S o'clock GMT>"-15min`) test.log
错误:
date: 0551-402 Invalid character in date/time specification.
Usage: date [-u] [+"Field Descriptors"]
awk: 0602-562 Field $() is not correct.
The input line number is 1. The file is test.log.
The source line number is 1.
任何人都可以看到问题所在吗?
答案 0 :(得分:2)
我相信你的意思
awk '$0 >= from' from=$(date -u -d -15min "+####<%d-%b-%Y %H:%M:%S o'clock GMT>") test.log
$from
并不代表from
的值,而是from
字段的值。如果field
不是数字,这没有任何意义。-15min
调用中的date
是格式说明符的一部分,而不是日期规范。$()
,而不是同时进行。除非您想将date
的输出作为命令运行并使用其输出。顺便说一下,我怀疑以这种方式格式化的日期字符串的词典比较不会产生你想要的结果。在所有情况下,这都不会导致后来的日期被认为比以前的日期更大 - 特别是在月末/月初。 28-Feb
按字典顺序大于01-Mar
。
附录:啊,我觉得这看起来很熟悉。我在your previous question之前留下了一个没有这个问题的解决方案,因为这个问题在这个案例中并没有真正起作用。