История изменений
Исправление aureliano15, (текущая версия) :
Предполагая, что список пактов находится в файле package.list, число уникальных названий пакетов (без версий и релизов) не слишком велико (не слишком — это значит поместится в переменную окружения), а сами записи имеют вид имя-X.Y.Z-R без расширения, где X, Y, Z и R — любые десятичные числа без букв и пр. символов, следующий скрипт
for i in $(cat package.list | sed 's/-[0-9]*\.[0-9]*\.[0-9]*-[0-9]*//' | sort | uniq);
do
grep "^$i-[0-9]*\.[0-9]*\.[0-9]*-[0-9]*\$" < package.list | sort -rn | head -n2;
done
выведет в стандартный вывод все пакеты последней и предпоследней версий.
Исходная версия aureliano15, :
Предполагая, что список пактов находится в файле package.list, число уникальных названий пакетов (без версий и релизов) не слишком велико (не слишком — это значит поместится в переменную окружения), а сами записи имеют вид имя-X.Y.Z-R без расширения, где X, Y, Z и R — любые десятичные цифры без букв и пр. символов, следующий скрипт
for i in $(cat package.list | sed 's/-[0-9]*\.[0-9]*\.[0-9]*-[0-9]*//' | sort | uniq);
do
grep "^$i-[0-9]*\.[0-9]*\.[0-9]*-[0-9]*\$" < package.list | sort -rn | head -n2;
done
выведет в стандартный вывод все пакеты последней и предпоследней версий.