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

如何在Bash中解析命令彩色输出?筛选已连接显示器条目

筛选kscreen-doctor输出中已连接的显示设备

在Bash环境执行以下命令后:

kscreen-doctor --outputs | grep connected

得到的输出包含已连接和未连接的设备行,但尝试多种带前导空格的grep变体(如grep " connected"、grep "\sconnected"等)均无法仅保留已连接设备。

可行解决方法

方法1:排除含"disconnected"的行

利用grep -v反向排除未连接的行:

kscreen-doctor --outputs | grep connected | grep -v disconnected

先抓取所有含"connected"的行,再排除包含"disconnected"的行,剩余即为已连接设备的信息。

方法2:精准匹配已连接行的特征

已连接设备行包含enabled connected的固定组合,直接匹配该字符串:

kscreen-doctor --outputs | grep "enabled connected"

若担心空白字符数量问题,用扩展正则匹配任意空白字符:

kscreen-doctor --outputs | grep -E 'enabled\s+connected'

-E启用扩展正则,\s+匹配一个或多个空白字符,避免因多空格导致匹配失败。

方法3:用awk按字段筛选

awk按空格分割字段,直接判断第4个字段是否为"connected":

kscreen-doctor --outputs | awk '$4 == "connected"'

这种方式更精准,不受空白字符数量影响。

原命令失败原因

  • 输出中的空白字符可能是多个空格或制表符,单空格匹配无法命中;
  • 基础grep不支持\s正则,需加-E启用扩展正则,或用[[:space:]]代替\s。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 19:53:21