Следующий подход основан исключительно наawk
-и позволяет избежать внешнего цикла:
awk 'FNR==NR {key[NR]=$1; ref[NR]=$2; n_refs++; next} {for (i=1;i<=n_refs;i++) if ($2==key[i]) $2=key[i]"("ref[i]")"; print}' reference input
Это сначала обработает «справочный» файл и сгенерирует список пар UUID -«Номер группы» -(фактически два массива с соответствующими записями )из этого файла.
После обработки этого файла (, обозначенного FNR
, обрабатывается номер записи файла для каждого -, отличный от NR
, номер глобальной записи )и «основной входной файл»., он переберет все найденные ассоциации и добавит идентификатор группы, соответствующий UUID, во второй столбец, просто сравнив текущее содержимое второго столбца со всеми зарегистрированными UUID.
Сценарий kwin UltawideWindows должен делать то, что вы ищете. Он сопоставляет сочетания клавиш ctrl+meta+numpad и meta+numpad, а также ctrl+numpad и alt+numpad для сопоставления различных позиций и размеров окон.