пятница, 4 августа 2023 г.

Как поискать регулярками по куче файлов

Возникла ситуация, когда надо было найти все запуски задачи в логах. За несколько лет... Тогда как раз были длинные выходные, так что я интереса ради запустила греп (виртуалка линуксовая):


grep "myTaskPerformer"

 

Смотрю — долго думает. В итоге выкачала логи к себе локально и запустила робота, который пробежался, их обработал.

А потом пришел коллега и показал другую команду, которая выполнилась почти моментально. Правда, я искала по всем логам, забыв, что нужное мне вынесено в task-логи. 

Так что он:

  • добавил ограничение по названиям файлов, искал среди меньшего количества в итоге
  • греп тоже изменил, добавив больше уточнения в поисковую фразу
Итоговая команда:


find /opt/jboss/standalone/log -name task* | sort -h | xargs grep "myTaskPerformer: processed" > /tmp/logs.txt


В итоге моя команда подвисла и через 4 дня ещё думала (робот локально быстрее отработал).

Его команда сработала моментально. Пожалуй, запишу себе её на будущее =)