Ответ 1
Попробуйте следующее:
sort -t: -k1,1 -k3 data.txt
дает:
bast:disp-san-d5-06:piranha
bast:display-san-12:redbird
bast:display-san-07:waverider
bast:display-san-12:waverider
Это будет сортировать первое поле в качестве первичного ключа, а третье поле - в качестве вторичного ключа, разделяющего линию на поля на :
Подробнее
data.txt
содержит 4 строки из вашего сообщения.
Вы можете указать несколько полей в качестве сортировочных ключей, см. справочная страница
-k1,1
означает сортировку по первому полю (начало в поле 1 и завершение в поле 1, в противном случае он будет продолжать использовать остальную часть строки для определения сортировки)
-k3
означает сортировку по третьему полю в качестве вторичного ключа. Поскольку нет других полей позади, нет необходимости указывать -k3,3
, но это тоже не повредит.
-t:
означает разделение полей в строках с символом :
, в противном случае по умолчанию используется
Подробнее см. этот вопрос SO Сортировка нескольких ключей с сортировкой Unix и сортировать man-страницу