Как искать строки в файле между двумя временными метками, используя Bash [duplicate]

На этот вопрос уже есть ответ:

В bash я пытаюсь прочитать файл журнала и буду печатать только те строки, которые имеют временную метку между двумя определенными моментами времени. Формат времени - чч: мм: сс. Например, я бы искал строки, которые упали бы между 12:52:33 до 12:59:33.

Я хочу использовать регулярное выражение, потому что я могу использовать его в функции grep.

Каждая строка журнала начинается с some_nr 2014-05-15 21:58:00,000000 rest_of_line.

Мое решение дает мне строки с полем в 1 мин. Я вырезал ss и беру все строки с hh:mm:[0-9]{2}. $ 2 имеет формат filename_hh:mm:;, например: "24249_16:05:;24249_16:05:;24249_16:07:;24249_16:07:;24249_16:08:"

Мой код:

B=$2  

for line in ${B//;/ } ;
do  
    TENT=`echo $line | awk '{split([110],numbers,"_"); print numbers[1]}'`"_logs.txt"
    TIME=`echo $line | awk '{split([110],numbers,"_"); print numbers[2]}'`"[0-9]{2}"

    grep -iE ${TIME} ${TENT} >> ${FILE1}
done

Мне нужно решение с полем в 15 секунд для любого времени, а не 60. Я хочу, чтобы вход в отформатируйте filename_hh:mm:ss и возьмите строки для чч: мм: сс +/- 15 с или filename_hh:mm:ss(1)_hh:mm:ss(2) и возьмите строки между чч: мм: сс (1) и чч: мм: сс (2). В течение некоторого времени нет линий, поэтому решение должно «распознать», если иногда совпадает введенный интервал или нет.

Файлы журналов выглядят так:

1002143 1002143 2014/15/05 22:09:52.937004 bla 
1002130         2014/15/05 22:09:44.786002 bla bla
1001667         2014/15/05 22:09:44.592009 bl a bla
1001667 1001667 2014/15/05 22:09:44.592009 bl a bla
8
задан Arjs 14 March 2019 в 00:31
поделиться