Вы можете просто сделать это, выполнив sort
соответственно, а затем выбрав первую запись для каждой группы.
sort filename -t'|' -k1,4 -k7rn -k5,6rn | sort -t'|' -k1,4 -u
Результат:
aaaaa|bbbbb|ccccc|ddddd|5|5|4
wwwww|xxxxx|yyyyy|zzzzz|10|10|2
Это
-t '|'
устанавливает разделитель полей на |
-k1,4
порядок по первым 4 полям -k7rn
затем седьмым полем в обратном и числовом сравнении -k5,6rn
, затем то же самое с пятым и шестым полями |
передать это другому сорту -k1,4 -u
-u
обозначает уникальность первых 4 полей Таким образом, вся операция подобна упорядочиванию файла так, как вы хотите, чтобы отображалась нужная вам строка сначала в группах из первых 4 полей. Затем просто возьмите первую строку для каждой группы.
Я перепробовал миллиард решений, ничего не помогло, сегодня я обновился до Fedora 26, все работает нормально, ошибка исправлена. Не знаю как, должно быть какое-то программное обеспечение с ошибками, которое было исправлено обновлением.
type = AVC msg = audit (1489481742.902: 140): avc: denied {view} for pid = 1159 comm = "gdm-session-wor" scontext = system_u: system_r: xdm_t: s0-s0: c0.c1023 tcontext = system_u: system_r: kernel_t: s0 tclass = key permissive = 0
Опубликованный вами AVC указывает на эту ошибку № 1378297 , уже исправленную в багзилле Red Hat.
Чтобы убедиться, что это действительно та же проблема, я бы попробовал SELinux в разрешающем режиме (запуск seteonfoce 0
не будет эффективен при перезагрузке). Измените / etc / selinux / config
и измените принудительное применение
на разрешающее
, а затем попробуйте перезагрузить компьютер.
Другой вариант - выполнить шаги, указанные в отчете:
# ausearch -c 'gdm-session-wor' --raw | audit2allow -M my-gdmsessionwor
# semodule -X 300 -i my-gdmsessionwor.pp
и перезагрузиться. Если это поможет, то, вероятно, лучше всего будет ныть в bugzilla, чтобы исправить это :)