Чтобы сохранить три самых больших значения, вы можете использовать два массива по три элемента в каждом, один для фактических значений, а другой для связанных ключей. Они должны быть отсортированы.
BEGIN { FS = "," }
{
key = sprintf("%s,%s,%s", $1, $2, $3)
value = $4
for (i = 1; i <= 3; ++i)
if (values[i] == "" || values[i] < value) {
tmp = values[i]
values[i] = value
value = tmp
tmp = keys[i]
keys[i] = key
key = tmp
} else break
}
END {
for (i = 1; i <= 3; ++i)
printf("%s,%d\n", keys[i], values[i])
}
Здесь используются два массива, values
и keys
. Для каждого считанного значения(value = $4
)значение сравнивается с каждым значением в values
, чтобы определить, больше ли оно любого из них. Если это так, «текущее значение»(value
)заменяется значением в values[i]
и , это значение «пузырится» вниз по массиву. Массив keys
синхронизируется с массивом values
.
Тестирование:
$ cat file
A1,B2,C3,35
A4,B5,C6,607
A7,B8,C9,159
A10,B11,C12,100
A13,B14,C15,116
A16,B17,C18,688
A19,B20,C21,346
A22,B23,C24,277
A25,B26,C27,931
A28,B29,C30,552
A31,B32,C33,605
A34,B35,C36,109
$ awk -f script.awk file
A25,B26,C27,931
A16,B17,C18,688
A4,B5,C6,607
Правильным решением является установка соответствующего пакета langpacks-*
. В рабочей станции Fedora можно просто открыть «Действия», ввести нужный язык и сразу перейти к установке пакета в GNOME Software.
Моя проблема заключалась в том, что я проверил только зависимости метапакета -, пришел к выводу, что он не имеет значения, и не пытался его установить. Пакеты, которые я искал, оказались «слабыми» зависимостями. Я начал новый вопрос , чтобы уточнить, почему я их не видел.
Вот пример того, что было установлено для русского языка.
$ LC_ALL=C dnf history info 53
Transaction ID : 53
Begin time : Sat Sep 25 15:25:33 2021
Begin rpmdb : 1923:5ed2042bece8a42f6774e1a69a2c1d3e73cf5d72
End time : Sat Sep 25 15:25:37 2021 (4 seconds)
End rpmdb : 1934:033d166658f519594bcc1ff0e85c3192530fac9b
User : Roman Riabenko <roman>
Return-Code : Success
Releasever : 34
Command Line : install langpacks-ru
Comment :
Packages Altered:
Install hunspell-ru-1:0.99g5-19.fc34.noarch @fedora
Install hyphen-ru-0.20200325-2.fc34.noarch @fedora
Install langpacks-core-font-ru-3.0-14.fc34.noarch @fedora
Install langpacks-core-ru-3.0-14.fc34.noarch @fedora
Install langpacks-ru-3.0-14.fc34.noarch @fedora
Install man-pages-ru-5.03-5.20191017.fc34.noarch @fedora
Install mythes-ru-0.20070613-23.fc34.noarch @fedora
Install autocorr-ru-1:7.1.6.2-1.fc34.noarch @updates
Install glibc-langpack-ru-2.33-20.fc34.x86_64 @updates
Install libreoffice-help-ru-1:7.1.6.2-1.fc34.x86_64 @updates
Install libreoffice-langpack-ru-1:7.1.6.2-1.fc34.x86_64 @updates