Сортировка по двум столбцам

Предполагая, что у вас уже установлен пакет, rpm -q --whatprovides /usr/lib64/libglut.so.3 покажет имя пакета, предоставляющего файл.

(Неприменимо, поскольку вы не хотите использовать yum): если он еще не установлен, тогда yum предоставляет /usr/lib64/libglut.so.3 или просто yum предоставляет 'libglut * ' выполнит поиск в репозиториях yum и предоставит информацию.

3
17.11.2018, 02:33
2 ответа

С помощью awk вы можете добавить : к последнему полю (то есть фамилию плюс все, что следует за ней) сортировать по 1-му и 3-му полям (это раз, используя : в качестве разделителя полей) затем снова с помощью awk удалите первый : из последнего поля:

awk '$NF=":"$NF' infile | sort -t : -k1,1 -k3,3 | awk 'sub(/:/, "", $NF)'

конечный результат:

east:Lilly Batsuro:58:85:84:52
east:Shirley Couts:66:57:67:37
east:Daniel Liebelt:83:78:84:61
east:James Peringer:50:62:56:94
east:Sam Smith:52:72:78:62
west:Carmen Gondar:62:58:85:56
west:Kim Husak:89:91:63:64
west:Alex Opitz:79:68:57:93
west:Lenny Taufa:53:61:82:52
west:Derek Willard:63:69:74:43
2
27.01.2020, 21:27
sed -r 's/^([^:]+):([^ ]+) ([^:]+):.*$/\1-\3 &/' your-file.txt  | \
    sort | sed -r 's/[^ ]+ (.*)/\1/'

Пример:

$ sed -r 's/^([^:]+):([^ ]+) ([^:]+):.*$/\1-\3 &/' your-file.txt  | sort | sed -r 's/[^ ]+ (.*)/\1/'
east:Lilly Batsuro:58:85:84:52
east:Shirley Couts:66:57:67:37
east:Daniel Liebelt:83:78:84:61
east:James Peringer:50:62:56:94
east:Sam Smith:52:72:78:62
west:Carmen Gondar:62:58:85:56
west:Kim Husak:89:91:63:64
west:Alex Opitz:79:68:57:93
west:Lenny Taufa:53:61:82:52
west:Derek Willard:63:69:74:43

Кстати, вот как sort выбирает первое поле и второе поле, когда вы запускаете его с sort -k1,1 -k2,2:

$ sort --debug -k1,1 -k2,2 ttt.txt
east:Daniel Liebelt:83:78:84:61
___________
           ____________________
_________________________________
east:James Peringer:50:62:56:94
__________
          _____________________
_________________________________
east:Lilly Batsuro:58:85:84:52
__________
          ____________________
________________________________
east:Sam Smith:52:72:78:62
________
        __________________
____________________________
east:Shirley Couts:66:57:67:37
____________
            __________________
________________________________
west:Alex Opitz:79:68:57:93
_________
         __________________
_____________________________
west:Carmen Gondar:62:58:85:56
___________
           ___________________
________________________________
west:Derek Willard:63:69:74:43
__________
          ____________________
________________________________
west:Kim Husak:89:91:63:64
________
        __________________
____________________________
west:Lenny Taufa:53:61:82:52
__________
          __________________
0
27.01.2020, 21:27

Теги

Похожие вопросы