Редактировать: Оказывается, Бенуа был в некотором роде на правильном пути, и Роланд изменил баланс
Вам просто нужно сказать sort
, чтобы рассмотреть только поле 2 (добавить ", 2"):
find ... | sort --version-sort --field-separator=- --key=2,2
Оригинальный ответ: игнорировать
Если ни одно из ваших имен файлов не содержит пробелов между дефисами, вы можете попробовать это:
find ... | sed 's/.*-\([^-]*\)-.*/\1 \0/;s/[^0-9] /.&/' | sort --version-sort --field-separator=- --key=2 | sed 's/[^ ]* //'
Первая команда sed
делает строки похожими на это (я добавил «10», чтобы показать, чтосортировка числовая):
1.9.a command-1.9a-setup
2.0.c command-2.0c-setup
2.0.a command-2.0a-setup
2.0 command-2.0-setup
10 command-10-setup
Дополнительная точка позволяет выполнять сортировку букв по номеру версии с номером после номера версии без суффикса.Вторая команда sed
удаляет префиксный номер версии из каждой строки.
Существует множество способов, которые могут привести к сбою.