Использование sed
:
sed -n '/May 16 11:00:00/,/May 16 16:30:00/p' /path/to/inputfile
С grep
, я думаю, что проблемы могут быть, во-первых, в порядке ваших параметров - вы помещаете аргументы -A
и -B
после входного файла, поэтому grep
, вероятно, пытается прочитать файлы с именами -A
, -B
и 10000
; и, во-вторых, что вы не избегаете своих квадратных скобок. Ваш конвейер может работать следующим образом:
grep -E -A10000 'May 16 11:00:00' alert.log | grep -E -B10000 'May 16 16:30:00'
Обратите внимание, что они будут работать только в том случае, если у вас действительно есть запись в журнале, которая соответствует точной отметке времени, которую вы ищете; соответствующим образом отрегулируйте первую и последнюю запись, которые вы хотите использовать в качестве ограничений вашего поиска.
Использование egrep
на основе приведенного вами примера:
egrep "May 16 1[1-6]:..:.." /path/to/file | egrep -v "May .. 16:[3-5][1-9]:[0-9][1-9]"