1

使用xrandr | grep '*'我想找到我们网络上所有显示器的 x 分辨率。这是为了帮助在其他脚本中自动放置 xterm。

我们的一些系统正在运行 redhat 6.4,而另一些系统正在运行 redhat 5.8,xrandr 的结果因 redhat 版本而异

对于 redhat 6.4xrandr | grep '*'返回

1680x1050 60.0*+

对于红帽 5.8

*0 1680 x 1050 ( 474mm x 303mm ) *50

我已经尝试过xrandr | grep '*' | sed 's/\s+\(\d\{4\}\)\s*x\s*\d+/\1/',但这会返回与上面突出显示的 5.8 和 6.4 相同的字符串。在这两种情况下,所需的输出都是 1680

有什么提示吗?

4

1 回答 1

1

试试这一行:

xrandr|grep -Po '\d+(?=\s*x.*\*.*)'

例子:

kent$ echo '1680x1050 60.0*+
*0 8888 x 1050 ( 474mm x 303mm ) *50
without star'|grep -Po '\d+(?=\s*x.*\*.*)'
1680
8888

在上面的示例中,我将一个 X 更改为8888并添加了 oneline 而没有*显示它适用于这些情况。

您可以尝试的另一种方法,使用xdpyinfo

 xdpyinfo| grep dimens|grep -oP '(?<=\s)\d+'
于 2013-03-19T10:12:24.407 回答