Как предложил Ульрих, вы можете сделать это с помощью find
таким образом:
find "/mydir" -type f -regex ".*/tomcat_.*/managetest.class" -printf "%h %T+\n"
ОБНОВЛЕНИЕ:
чтобы получить требуемый формат, мы можем перенаправить вывод через awk:
find "/mydir" -type f -path "*/tomcat_*/managetest.class" -printf "%h %T+\n" | awk -F"[ /.]" '{print $(NF-4),$(NF-1)}'
Оператор awk разбивает вывод на поля по любому из символов в '[пробел] /. - затем он распечатывает четвертые и первые после последних поля, которые должны быть теми, которые вам нужны, поэтому вы больше не видите каталоги более высокого уровня, имя файла или доли секунды. (Я также переключился на find
-path
вместо -regex
, но они оба достигают одного и того же.)