You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何调整grep命令提取xinput输出中Touchpad的id数字

提取xinput输出中触摸板的ID数字

已知xinput输出中有这样一行:

⎜ ↳ ELAN0518:01 04F3:31FC Touchpad id=11 [slave pointer (2)]

需要把id=后面的数字提取到变量中。之前尝试的命令:

yourvar=$(xinput  |grep -oP 'Touchpad.*id=\K[^ ]+')
echo $yourvar

输出结果带有多余的11 [slave,可以通过修改grep的正则表达式来只提取数字:

正确命令

yourvar=$(xinput | grep -oP 'Touchpad.*id=\K\d+')
echo $yourvar

说明

  • \K用于重置匹配的起点,让grep只返回\K之后匹配到的内容
  • \d+表示匹配连续的数字,这样就只会提取id=后面的纯数字部分,不会包含后续的空格和[slave等内容

如果系统的grep不支持\d,也可以用[0-9]+替代,效果相同:

yourvar=$(xinput | grep -oP 'Touchpad.*id=\K[0-9]+')

内容的提问来源于stack exchange,提问作者Micklos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 05:27:18