Ну, часть проблемы - это -t ' '
не свернет разделители, таким образом, Ваш девятый столбец будет размерами с 4 символами и пустой на трех символах. Пропустите его, и Вы добираетесь, свернутый пробел как Вы хотят. Другая часть проблемы, как другие сказали, то, что поля не являются числовыми. К счастью, они напоминают номера версий достаточно тесно, можно использовать вид версии (-V
) заказать им. Далее, если они собираются быть непрерывными (т.е. 1-17, не скучая ни по кому), можно использовать фигурные скобки, как я упомянул в другом потоке, Вы были направлены к (test.txt.{1..17}
).
ls -l | sort -Vk9
echo test.text.{1..17}
После некоторого ввода по абсолютному адресу вокруг, я нашел от https://bugzilla.redhat.com/show_bug.cgi? id=601853, которым проблема может быть то, что Xorg сбрасывает уровень клавиатуры после udev, работал, поэтому даже при том, что мой udev сценарий определенно выполнялся, его действия были быстро отменены Xorg.
Однако та страница также имеет фиксацию: если я выполняю startx с опциями startx -- -ardelay 500 -arinterval 20
, затем мои настройки сохраняются, даже когда новая клавиатура включается.
Можно попробовать эту команду для определения то, чем udev идентификатор был бы для клавиатуры USB. Выполните это и затем включите Вашу клавиатуру:
$ udevadm monitor --udev --subsystem-match=usb
У меня есть старые Sun Microsystems клавиатура USB. Когда я отключаю его и разъем, это въезжает задним ходом, я получаю следующие сообщения udev:
$ udevadm monitor --udev --subsystem-match=usb
monitor will print the received events for:
UDEV - the event which udev sends out after rule processing
UDEV [1375655040.466080] remove /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0 (usb)
UDEV [1375655040.557791] remove /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2 (usb)
UDEV [1375655044.586242] add /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2 (usb)
UDEV [1375655044.589087] add /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0 (usb)
UDEV [1375655049.880514] remove /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0 (usb)
UDEV [1375655049.905175] remove /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2 (usb)
Таким образом, udev идентификатор, который Вы могли поместить в свое правило, использует эту часть вышеупомянутого вывода, /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2
.
Можно также просто экспортировать весь udev DB и вручную просканировать через него:
$ udevadm info --export-db
...
P: /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2
N: bus/usb/002/009
S: char/189:136
E: UDEV_LOG=3
E: DEVPATH=/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2
E: SUBSYSTEM=usb
E: DEVNAME=bus/usb/002/009
E: ID_VENDOR=0430
E: ID_VENDOR_ENC=0430
E: ID_VENDOR_ID=0430
E: ID_MODEL=0005
E: ID_MODEL_ENC=0005
E: ID_MODEL_ID=0005
E: ID_REVISION=0102
E: ID_SERIAL=0430_0005
E: ID_BUS=usb
E: ID_USB_INTERFACES=:030101:
E: MAJOR=189
E: MINOR=136
E: DEVTYPE=usb_device
E: DRIVER=usb
E: DEVICE=/proc/bus/usb/002/009
E: PRODUCT=430/5/102
E: TYPE=0/0/0
E: BUSNUM=002
E: DEVNUM=009
E: DEVLINKS=/dev/char/189:136
...
И используйте некоторую другую уникальную характеристику от вышеупомянутого вывода в Вашем правиле udev также.