Обычно я использую xev
, чтобы определить скан-код ключа, а затем сопоставить его с любым действием, которое я хочу, используя либо xdotool , либо XBindKeys .
$ xev | grep -A2 --line-buffered '^KeyRelease' \
| sed -n '/keycode /s/^.*keycode \([0-9]*\).* (.*, \(.*\)).*$/\1 \2/p'
После выполнения указанной выше команды xev
вы увидите маленькое белое окно, которое выскочит. Наведите указатель мыши на это окно, а затем нажмите клавишу проблемы. Название клавиши должно отображаться в терминале при нажатии различных клавиш.
Вы можете создавать сочетания клавиш, которые будут запускать команды, например, с помощью xbindkeys
. Я успешно использовал XBindKeys в GNOME 3.8.4 именно для этой цели.
Мое использование было скромным, но мне нравится создавать сочетания клавиш для запуска Nautilus с открытыми каталогами.
Сначала вам нужно убедиться, что установлены пакеты xbindkeys
.
Затем вам нужно будет выполнить следующую команду только один раз, чтобы создать файл конфигурации шаблона xbindkeys
.
$ xbindkeys --defaults > /home/saml/.xbindkeysrc
Созданный файл можно открыть в текстовом редакторе и добавить следующее правило:
"nautilus --browser /home/saml/projects/path/to/some/dir"
Mod4+shift + q
После внесения вышеуказанного изменения нам нужно убить xbindkeys
, если он уже запущен, а затем перезапустить его.
$ killall xbindkeys
$ xbindkeys
Теперь, когда это работает, я каждый раз набираю Mod + Shift + Q Nautilus откроется с соответствующей открытой папкой.
Если вы пройдете через настройки ( Системные настройки → Клавиатура , выберите вкладку Ярлыки и добавьте новый пользовательский ярлык для в вашем браузере.
Используя шаги 1–5, как показано на схеме, вы также можете сопоставить команду со своим специальным ключом.
С помощью GNU sed
это можно сделать следующим образом:
sed -Ee 's/,([0-9]),/,0\1,/' input
Я использовал приведенный ниже метод awk для достижения того же
_линукс _пример ~]#awk -F "," '{if(length($2)<=1)print $1",0"$2","$3;else print $0}' file.txt
выход:
awk -F "," '{if(length($2)<=1)print $1",0"$2","$3;else print $0}' filename
New,09,1
Old,11,0
awk -F ',' 'BEGIN { OFS=","};{if(length($2)==1)$2="0"$2;print $0}'