如何获取与日期时间范围匹配的行。例如,在2017-09-08 00:00:00和2017-09-09 00:00:00之间获取所有行。分隔符是空格。
文件:
2017-09-07 19:00:01 a
2017-09-08 20:00:01 a
2017-09-08 21:00:03 a
2017-09-10 19:00:01 a
输出:
2017-09-08 20:00:01 a
2017-09-08 21:00:03 a
答案 0 :(得分:4)
awk '$1FS$2> "2017-09-08 00:00:00" && $1FS$2 <"2017-09-09 00:00:00"' inputfile
2017-09-08 20:00:01 a
2017-09-08 21:00:03 a
或者您可以将时间存储在变量中:
awk -v start="2017-09-08 00:00:00" -v end="2017-09-09 00:00:00" '$1FS$2> start && $1FS$2 <end' inputfile
2017-09-08 20:00:01 a
2017-09-08 21:00:03 a
说明:
$1
表示第一列
$2
表示第二列
FS
表示字段分隔符,默认情况下为空格。
$1FS$2
表示前两列作为一个实体。这是必需的,因为您的日期和时间列之间有空格。