Фильтрация элемента Xth подряд?

Bash ничего не знает об экранах (он может работать без того, чтобы быть замеченным, на самом деле). Можно перенаправить и стандартный вывод и стандартную погрешность в любой файл или канал, все же.

2
03.12.2012, 15:53
2 ответа

Простофиля довольно проста для такого рода вещи, но хорошо, можно также использовать cut:

xinput --list --short|grep "slave  pointer" | cut -f 1

Это будет также включать ведущее пространство и персонажи. Если необходимо избавиться от тех, попробуйте это:

xinput --list --short|grep "slave  pointer" | cut -f 1 | cut -d" " -f 5-
1
27.01.2020, 22:14
  • 1
    СПАСИБО, cut то, что я искал –  rubo77 03.12.2012, 23:35
  • 2
    для избавлений от пробелов в конце я использовал xinput --list --short|grep "slave pointer" | cut -f 1| cut -d" " -f 5-|sed 's/\s\+$//g' –  rubo77 04.12.2012, 02:15
  • 3
    Как я использую cut с выводом ps? см. unix.stackexchange.com/questions/79264 / … –  rubo77 13.06.2013, 12:32
  • 4
    @rubo77 Вы не делаете действительно, Вы ни один набор ps выходной формат или использование awk поскольку ответы на тот вопрос предлагают. –  terdon♦ 13.06.2013, 15:16

Если бы это был третий элемент, который был бы "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)'
1
27.01.2020, 22:14
  • 1
    Поля разделяются вкладками, таким образом, сокращение по умолчанию будет работать. –  terdon♦ 03.12.2012, 18:31
  • 2
    OK, я вижу при редактировании вопроса, что они там, но не в представленной версии. Я отредактировал свой ответ так, чтобы он работал в любом случае. –  Stéphane Chazelas 03.12.2012, 18:59

Теги

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