Bash ничего не знает об экранах (он может работать без того, чтобы быть замеченным, на самом деле). Можно перенаправить и стандартный вывод и стандартную погрешность в любой файл или канал, все же.
Простофиля довольно проста для такого рода вещи, но хорошо, можно также использовать cut
:
xinput --list --short|grep "slave pointer" | cut -f 1
Это будет также включать ведущее пространство и ↳
персонажи. Если необходимо избавиться от тех, попробуйте это:
xinput --list --short|grep "slave pointer" | cut -f 1 | cut -d" " -f 5-
Если бы это был третий элемент, который был бы "SynPS/2", не "SynPS/2 Synaptics TouchPad"
Лучшим, которого можно достигнуть здесь, является отчет, что прежде id=
поскольку это - единственная вещь, которая может определить, где имя устройства заканчивается.
xinput list | sed -n 's/^[ ⎜↳]*\(.*[^[:blank:]]\)[[:blank:]]*id=.*slave pointer.*/\1/p'
Или с GNU grep созданный с поддержкой PCRE (-P
опция):
xinput list | grep -Po '[^ ⎜↳].*?(?=\s+id=.*slave pointer)'
cut
то, что я искал – rubo77 03.12.2012, 23:35xinput --list --short|grep "slave pointer" | cut -f 1| cut -d" " -f 5-|sed 's/\s\+$//g'
– rubo77 04.12.2012, 02:15cut
с выводомps
? см. unix.stackexchange.com/questions/79264 / … – rubo77 13.06.2013, 12:32ps
выходной формат или использованиеawk
поскольку ответы на тот вопрос предлагают. – terdon♦ 13.06.2013, 15:16