1

У меня есть несколько подкаталогов (которые называются с использованием идентификаторов GUID), которые содержат файлы результатов компьютерного моделирования, которое я выполнял. Все файлы имеют следующие имена: hydro_configuration_xxxx.xyz, где xxxx - четырехзначное число от 0000 и выше; последний файл имеет самое высокое четырехзначное число. Я хотел бы иметь возможность перечислить последний файл в каждом подкаталоге, а также каталог, в котором он находится.

Так, например, для данного подкаталога fc86783b-bcc5-4456-8964-049682ee81aa, содержащего файлы hydro_configuration_0000.xyz в hydro_configuration_0123.xyz, и каталога e608273d-35bd-442c-9de1-0ec184aa0d95, содержащего файлы hydro_configuration_5064_64 для конфигурации__id__конфигурации_6464_35 нужна команда, которая производит вывод:

./fc86783b-bcc5-4456-8964-049682ee81aa/hydro_configuration_0123.xyz 
./e608273d-35bd-442c-9de1-0ec184aa0d95/hydro_configuration_3564.xyz

1 ответ1

2

Создайте скрипт bash latestfile.sh со следующим содержимым:

#!/bin/bash
ls -1tr "$1" | tail -n1

Запустите chmod +x latestfile.sh чтобы сделать его исполняемым.

Затем выполните следующую команду:

find test -mindepth 1 -type d -name "hydro_configuration_*" -printf "%p/" -a -exec ./latestfile.sh {} \;

Это найдет все каталоги, соответствующие шаблону, и напечатает их имена, после которых / и имя самого последнего файла.

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