LINUX.ORG.RU
Ответ на: комментарий от alozovskoy

любой вариант решения устраивает

bryak
() автор топика
mkdir 01-January-2016_135700 01-January-2016_175700 01-January-2016_211326 01-January-2016_235802 02-January-2016_135700 02-January-2016_175700 02-January-2016_211326 02-January-2016_235802

for d in ??-January-* 
do 
 day=${d/_*} 
 echo $day 
done | \
sort | uniq | \
while read uniqday 
do 
 ls -d ${uniqday}_* | sort | tail -n1  
done 


научиться по имени файла определять день.
вычленить уникальные дни, в файл или поток.
другая фаза - читаещь из потока уникальный день, обнаруживаешь для каждого дня имеющеися каталоги, сортируешь, берешь последний (или сортируешь по убыванию - берешь первый)

но маска DD-January-YYY с нужно грустно. - это грусть, потому что когданить ты захочешь посортировать по дате.

bl
()
Последнее исправление: bl (всего исправлений: 1)

Учитывая, что вывод * уже сортированный:

#!/bin/bash

declare -A last_dir_by_date
for dir in */; do
    IFS='_' read date time <<< "$dir"
    last_dir_by_date[$date]="$dir"
done

printf '%s\n' "${last_dir_by_date[@]}"
Zmicier
()
Ответ на: комментарий от Zmicier

А, да! Раскрытие хэша же ("${last_dir_by_date[@]}") — напротив, не сортируется ни по ключам, ни по значениям.

Скорее всего, это для вашей задачи это неважно, но надо это отметить, ибо может сложиться так, что это останется незамеченным.

Zmicier
()
Последнее исправление: Zmicier (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.