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)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.