【发布时间】:2020-01-21 07:28:56
【问题描述】:
我想从xrandr -q 捕获分辨率和刷新率输出。具体来说,这些数字的格式为xx.xx 或xxx.xx,其中小数点后总是有 2 个数字,但有时也有 2 或 3 个数字。我想单独捕获每个值以便能够存储它们以供以后使用。
4 行典型的命令输出如下所示:
3440x1440 59.97 + 99.98* 49.99
2560x1440 59.95
2560x1080 60.00 59.94
1920x1080 60.00 59.94 50.00
我已经能够使用string.match(xrandr[i], "^.-%s(%d.-x.-%s)") 获得分辨率,其中 xrandr 是一个包含每行命令输出的数组。我目前单独获取刷新率的尝试如下所示:string.gmatch(xrandr[i], "%s.-(%d.-%..-%d%d)")。这几乎可以工作,但是对于每个分辨率,它都会同时捕获分辨率和第一个刷新率,然后分别捕获任何后续。当我尝试打印有意捕获的分辨率及其每个支持的刷新率时,它看起来像这样:
3440x1440
3440x1440 59.97
99.98
49.99
2560x1440
2560x1440 59.95
捕获分辨率的位置,但随后以第一个刷新率再次捕获。相反,我想得到这个:
3440x1440
59.97
99.98
49.99
2560x1440
59.95
那么我怎样才能避免重新捕获分辨率,同时还单独获得每个刷新率?
【问题讨论】:
标签: lua