Немного другая интерпретация. Я прочитал это, так как последние 1 -2 символа не могут быть цифрами, поэтому я получаю
grep -E '^[[:digit:]]+[^[:digit:]]{1,2}$' file
1234567a
2245678902da
Если кому-то пригодится, вот хак, о котором я упоминал выше того, что я использовал на данный момент.
~/bin/setxkbmap.sh
анализирует ~/.keyboard
, извлекая xkb settings и запускает эквивалентную команду setxkbmap (s )в X. ~/bin/setxkbmap.sh
можно вызвать вручную или автоматически при запуске X через линейный вход, например, ~/.xsessionrc
.
~/bin/setxkbmap.sh
:
#!/bin/bash
# Parse ~/.keyboard, extracting the xkb settings, and run equivalent
# setxkbmap command(s) in X.
source ~/.keyboard
setxkbmap_cmd=(setxkbmap -model "${XKBMODEL}")
setxkbmap_cmd+=(-layout "${XKBLAYOUT}")
# Clear previously-set options first; otherwise, these will be
# appended to whatever is already there.
setxkbmap_cmd+=(-option)
# -r : do not allow backslashes to escape any characters
# -a array: assign the words read to sequential indices of the array
# variable ARRAY, starting at zero
IFS=',' read -r -a xkbopts <<< "${XKBOPTIONS}"
for opt in "${xkbopts[@]}"; do
setxkbmap_cmd+=(-option "${opt}")
done
"${setxkbmap_cmd[@]}"
~/.keyboard
:
XKBMODEL="pc105"
XKBLAYOUT="us"
# ctrl: specifies options coming from /usr/share/X11/xkb/symbols/ctrl
# file.
XKBOPTIONS="ctrl:menu_rctrl,ctrl:nocaps,ctrl:swap_rwin_rctl,terminate:ctrl_alt_bksp"
~/.xsessionrc
:
# ~/.xsessionrc is sourced by Xsession (a sh script), everytime an X
# session is started. See 'man xsession' for details.
# Explicitly use bash, as ~/.xsessionrc is called by sh (dash in
# Debian 9 GNU/Linux).
bash ~/bin/setxkbmap.sh