Как получить все строки журнала между двумя временными диапазонами?

У меня есть файлы журналов, которые имеют такие строки:

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 для этого, но я не могу найти решение. я прочитал несколько решений (как это) и узнал о awk. но похоже, что awk тоже нужен шаблон регулярных выражений?

0

Решение

я хотел бы использовать 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
2

Другие решения

Других решений пока нет …