У меня есть каталог в Linux, в котором есть список файлов журналов, где файлы журналов генерируются автоматически, если выполняется какое-то задание. К каждому файлу журнала добавляется метка времени, например "JobName_TimeStamp".

ОБНОВЛЕНО:

job_2014-05-28_15:05:26.log
job_2014-05-28_15:06:58.log
job_2014-05-28_15:07:02.log
job_2014-05-28_15:07:57.log
job_2014-05-28_15:08:00.log
job_2014-05-28_15:08:01.log
job_2014-05-28_15:08:09.log
job_2014-05-28_15:08:10.log
job_2014-05-28_15:08:11.log
job_2014-05-28_15:08:12.log
job_2014-05-28_15:08:13.log
job_2014-05-28_15:08:14.log
job_2014-05-28_15:08:22.log

job1_2014-05-28_15:08:11.log
job1_2014-05-28_15:08:12.log
job1_2014-05-28_15:08:13.log
job1_2014-05-28_15:08:14.log
job1_2014-05-28_15:08:22.log

Я хотел запустить команду Linux, чтобы получить список всех файлов, превышающих определенную временную метку?

Для примера 1: я передам два параметра, если указана временная метка « 2014-05-28_15: 08: 00 » и имя задания « задание »

Я должен получить список как

job_2014-05-28_15:08:01.log
job_2014-05-28_15:08:09.log
job_2014-05-28_15:08:10.log
job_2014-05-28_15:08:11.log
job_2014-05-28_15:08:12.log
job_2014-05-28_15:08:13.log
job_2014-05-28_15:08:14.log
job_2014-05-28_15:08:22.log

Пример 2: я передам два параметра, если указана метка времени « 2014-05-28_15: 08: 11 » и имя задания « job1 »

Я должен получить список как

job1_2014-05-28_15:08:12.log
job1_2014-05-28_15:08:13.log
job1_2014-05-28_15:08:14.log
job1_2014-05-28_15:08:22.log

Какие-либо решения?

Благодарю.

2 ответа2

1

Следующая команда, которую легко написать в сценарии, сделает это за вас:

 for i in $(ls *); do
           if [[ "job_2014-05-28_15:08:00.log" < "$i" ]]; then
                  echo $i
           fi
 done

РЕДАКТИРОВАТЬ:

Предположим, вы хотите сделать это только для заданий, называемых myjob, а затем измените приведенное выше:

 for i in $(ls myjob*); do
           if [[ "myjob_2014-05-28_15:08:00.log" < "$i" ]]; then
                  echo $i
           fi
 done
1

Простая команда поиска:

find . -maxdepth 1 -type f -name job1_\* -newer job1_2014-05-28_15:08:11.log

В этом примере есть 2 предположения:

  • mtime файлов журнала соответствует временным меткам в именах файлов
  • Вы можете указать конкретное имя файла, которое является нижней границей для всех требуемых файлов журнала.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .