2
cat log | awk '/^Jun 14 11:52/,/^Jun 14 11:56/'
这个工作,它给了我这两个时间戳之间的日志行。awk变量对日期grep不起作用
cat log | awk -v start="$startTime" -v end="$endTime" '/^start/,/^end/
'
这不起作用。它返回空。
我使用awk变量的方式有什么问题吗?
cat log | awk '/^Jun 14 11:52/,/^Jun 14 11:56/'
这个工作,它给了我这两个时间戳之间的日志行。awk变量对日期grep不起作用
cat log | awk -v start="$startTime" -v end="$endTime" '/^start/,/^end/
'
这不起作用。它返回空。
我使用awk变量的方式有什么问题吗?
在正则表达式文字/
和/
之间,您不能使用变量。
您可以使用:
awk -v start="$startTime" -v end="$endTime" '$0 ~ "^" start{p=1} p; $0 ~ "^" end{p=0}' log
就像一个魅力。有没有解释这种用法的文档? – egorulz
这里不会有任何文档,但是在一些在线的awk教程中,他们会显示类似的例子。 – anubhava