Внедрить максимальное значение для сортировки группы в bash - PullRequest
4 голосов
/ 24 марта 2020

Используя bash, я бы хотел отсортировать и отфильтровать список, чтобы сохранить только последнюю версию патча (максимальное значение) для минорной версии (для группы). Например:

$ cat data | sort -Vr
3.10.1
3.10.0
3.3.10
3.3.2
3.3.1
3.2.0
3.1.0
3.0.3
3.0.2
3.0.1
3.0.0

Я бы хотел получить такой результат:

3.10.1
3.3.10
3.2.0
3.1.0
3.0.3

Как это сделать?

1 Ответ

6 голосов
/ 24 марта 2020

Используйте другую сортировку с -u

sort -Vr data | sort -ru -t. -Vk1,2
  • -t. использует точку в качестве разделителя полей
  • -k1,2 сортирует по первым двум полям, т.е. игнорирует версию патча
  • -u означает «уникальный», то есть он печатает только первое вхождение для каждой группы, которая сортирует одинаковые
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...