Я хочу захватить разрешения и обновить sh скорость вывода с 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 - массив, содержащий каждую строку вывода команды. Моя текущая попытка получить индивидуальные ставки sh выглядит следующим образом: string.gmatch(xrandr[i], "%s.-(%d.-%..-%d%d)")
. Это почти работает, но для каждого разрешения оно фиксирует вместе разрешение и первый показатель refre sh, а затем отдельно фиксирует любое следующее. Когда я пытаюсь напечатать преднамеренно захваченное разрешение, за которым следуют все поддерживаемые значения refre sh, оно выглядит следующим образом:
3440x1440
3440x1440 59.97
99.98
49.99
2560x1440
2560x1440 59.95
Где снимается разрешение, но затем снова фиксируется при первом обновлении sh ставка. Вместо этого я хотел бы получить это:
3440x1440
59.97
99.98
49.99
2560x1440
59.95
Итак, как я могу избежать повторного захвата разрешения при одновременном получении каждого показателя refre sh по отдельности?