awk变量不适用于日期grep

ego*_*ulz 2 unix bash shell awk

 cat log | awk '/^Jun 14 11:52/,/^Jun 14 11:56/'
Run Code Online (Sandbox Code Playgroud)

这有效,它为我提供了这两个时间戳之间的日志行.

cat log | awk -v start="$startTime" -v end="$endTime" '/^start/,/^end/"

这不起作用.它返回空.

我使用awk变量的方式有问题吗?

anu*_*ava 6

在正则表达式文字之间/,/你不能使用变量.

您可以使用:

awk -v start="$startTime" -v end="$endTime" '$0 ~ "^" start{p=1} p; $0 ~ "^" end{p=0}' log
Run Code Online (Sandbox Code Playgroud)