我的日志文件有这样的行:
2017/10/18 00:00:00 [WARNING]
2017/10/18 00:10:00 [WARNING]
2017/10/18 00:20:00 [WARNING]
2017/10/18 01:00:00 [WARNING]
2017/10/18 01:10:00 [WARNING]
2017/10/18 01:20:00 [WARNING]
例如,我希望获得2017/10/18 00:15:00
和2017/10/18 01:15:00
之间的所有行。
我一直在尝试使用grep和regex,但我无法找到解决方案。我已经阅读了几个解决方案(like this)并了解了awk。但似乎awk也需要一个正则表达式模式?
答案 0 :(得分:2)
我会像这样使用awk
:
awk '$1" "$2>="2017/10/18 00:15:00" && $1" "$2<="2017/10/18 01:15:00"' file
您也可以使用变量开头和结尾:
#!/bin/bash
BEGIN="2017/10/18 00:15:00"
END="2017/10/18 01:15:00"
awk -v begin="${BEGIN}" \
-v end="${END}" \
'$1" "$2>=begin && $1" "$2<=end' file