如何将日期范围作为变量传递给awk

phy*_*rte 3 variables bash awk date-range colon

这是我的情况.

bash ~]# TIME="2012-05-25 06:42:57"
bash ~]# echo "2012-05-25 00:16:51,610" | awk -v var=$TIME '{if ($0 < var) print $0}'
Run Code Online (Sandbox Code Playgroud)

然后,这是错误消息

awk: 06:42:57
awk:   ^ syntax error
Run Code Online (Sandbox Code Playgroud)

我只想将日期范围传递给我的awk命令.如何存档?请帮忙.谢谢.

修改案例

START_TIME="2012-05-24 00:00:00"
END_TIME="2012-05-24 01:00:00"
echo "2012-05-24 00:10:10" | awk -v "START=$START_TIME" -v "END=$END_TIME" '{ if ( $0 > START && $0 < END) print $0 }'
Run Code Online (Sandbox Code Playgroud)

它似乎不适用于IF条件.

awk: { if ( $0 < START && $0 > END) print $0 }
awk:                           ^ syntax error
Run Code Online (Sandbox Code Playgroud)

在serval尝试之后,似乎找到了另一种方法的解决方案.

echo "2012-05-24 00:10:10" | awk '{ if ( $0 > "'"$START_TIME"'" && $0 < "'"$END_TIME"'" ) print $0 }'
Run Code Online (Sandbox Code Playgroud)

不知道怎么用awk变量"-v"来做.有人有理想吗?

Pau*_*ce. 7

将变量传递给AWK时引用它的变量:

echo "2012-05-25 00:16:51,610" | awk -v "var=$TIME" '{if ($0 < var) print $0}'
Run Code Online (Sandbox Code Playgroud)