Список останніх файлів з декількох підкаталогів


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 потрібна команда, яка виробляє вихід:

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

Корисний користувач залишив відповідь, але видалив її, перш ніж я міг прийняти. Наступна команда дала мені вихід, який мені потрібен: знайти n512 / -типу d | під час читання d; робити ls -ltr $ d / hydro * | хвіст -n 1; зроблено | awk -F "" '{print $ 8}'> out.txt
endian

Відповіді:


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 {} \;

Тут знайдуться всі каталоги, що відповідають шаблону, і надрукують їх імена, а потім - а /, а потім ім'я останнього файлу.


Дякую, я насправді застосував альтернативний підхід, але впевнений, що і ваш працював би. Оскільки початковий користувач, який допоміг мені, видалив його відповідь, я прийму замість вашої!
ендіан
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.