Вы можете отсортировать имена файлов за один раз с помощью многоклавной команды sort
и захватить последнюю строку с помощью tail
, чтобы получить последний файл.
Вам нужно будет указать -t-
, чтобы использовать тире в качестве разделителя полей сортировки, -n
, чтобы получить числовую сортировку, и перечислить каждое поле в порядке его приоритета. Формат для спецификатора поля:
-k, --key=POS1[,POS2] start a key at POS1 (origin 1), end it at POS2
(default end of line)
Таким образом, для года, поле 3, вам нужно указать его ширину в 4 символа как -k3,4
.
Если вы сортируете по полям года, месяца и дня в указанном порядке, вы получите список, в котором все файлы расположены в указанном порядке.
Таким образом, вместо цикла for
, вы можете использовать:
FILE=`curl -u << SERVER INFO >> 2> /dev/null | grep ${FILEPATTERN} | awk -F\ '{print $9}'
| sort -n -t- -k3,4 -k1,2 -k2,2 |tail -1`