Первые шаги: установка совместимой карты Bluetooth на мой ноутбук? [закрыто]

Вы можете обработать список всех макетов и для каждого элемента в списке проверить каждый соответствующий вариант для символов level3 :

list=($(sed '/! layout/,/^$/!d;//d
s/[[:blank:]]*\([^[:blank:]]*\)[[:blank:]].*/\1/' \
< /usr/share/X11/xkb/rules/evdev.lst))

layouts=("${list[@]##*/}")

for i in "${layouts[@]}"; do
sed -n '\|//.*level3|d;H;/xkb_symbols/{s/.*"\(.*\)".*/'"${i}:"'\1/;h}
/^};/{x;/level3/d;s/\n.*//p}' < /usr/share/X11/xkb/symbols/${i}
done

Первый sed перечисляет все макеты в /usr/share/X11/xkb/rules/evdev.lst и сохраняет результат в массиве list . Затем элементы этого массива обрабатываются посредством раскрытия параметров, чтобы получить только имя макета (например, извлечь jp из nec_vndr / jp ) и сохранить в массиве макетов ].
Затем для каждого элемента в макетов соответствующий / usr / share / X11 / xkb / symbols / $ {item} файл обрабатывается для извлечения вариантов, у которых нет символов level3 : sed first d удаляет все закомментированные строки, содержащие level3 , затем безусловно добавляет каждую строку в старый буфер H . Он редактирует строку, содержащую имя варианта, добавляя имя макета перед именем макета и перезаписывая старый буфер h , затем в конце каждого раздела вариантов ( / ^}; / ) он e x изменяет буферы, удаляя пространство шаблонов, если оно содержит level3 , иначе печатает только первую строку (то есть layout: вариант ). Результат будет примерно таким:

us:basic
us:ibm238l
us:dvorak
us:dvorak-l
us:dvorak-r
us:dvorak-classic
us:dvp
us:olpc2
us:chr
us:carpalx
us:carpalx-full
us:alt-intl-unicode
us:sun_type6
............
dk:nodeadkeys
dk:winkeys
dk:mac
dk:mac_nodeadkeys
dk:dvorak
dk:sun_type6
............
1
20.06.2011, 04:27
0 ответов

Теги

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