Вот способ Perl:
$ perl -lne 'if(/applicationName/){@A=(/"([^"<]+)"/g); print "@A"}' file
applicationNameSpectrumAnalyzer Booting Spectrum Analyzer
applicationNamePowerMeter Booting Power Meter
applicationNameAnalogDemod Booting Analog Demod
Хорошие новости :Технически это возможно.
Плохие новости :Это не работает под Xenocara (Клон OpenBSD X11 )без DRI/KMS (Видеодрайвер ядра)(Доступ к оборудованию X с использованием /dev/xf86
в данном случае )но работает на XOrg с Linux и FreeBSD. Вы можете попробовать, если это работает в вашем случае. Если вы используете KMS, то, вероятно, это сработает.
Снова хорошие новости :он вам не нужен, потому что он не повышает безопасность :веб-браузер является X-клиентом :он работает как обычный процесс и использует X для отображения данных.
X и виртуальные терминалы .
Видеооборудование ПК находится под управлением драйвера консоли OpenBSD wscons
, который предоставляет несколько виртуальных терминалов(vt
). Когда X запускается, он заимствует vt
из wscons
и с этого момента сам управляет видео с помощью своего драйвера (напрямую с помощью /dev/xf86
или с помощью драйвера KMS в ядре ). Управление клавиатурой также перемещено с wscons
на X, поэтому, когда вы нажимаете CTRL+ALT+F *, X просит wscons
переключиться на другое vt
, а wscons
возвращает видео и клавиатуру. Таким образом, вы можете запустить X на двух разных vt
s. У X есть опция vtXX
для выбора vt
для заимствования. Поскольку запуск X без клиента не имеет смысла, вы можете сделать
DISPLAY=:2 xinit xterm -- vt1 :2
Все после --
передается X, поэтому X запустится на vt1. Затем вы переключаетесь на другой vt
и запускаете
DISPLAY=:3 xinit xterm -- vt3 :3
Теперь у вас есть 2 сервера X. Если это сработает, вы можете настроить свой диспетчер отображения(xenodm
в OpenBSD )для передачи опции vtXX
в X
.
X, его клиенты и почему нет необходимости запускать 2 сервера X .
X-клиент (, будь то xterm
или firefox
), использует переменную среды DISPLAY
для поиска своего X
сервера, подключается к нему и использует его для отображения данных и чтения нажатий клавиш.
Итак, клиент работает локально, он просто использует разные X-серверы для отображения данных. После того, как ваш клиент взломал --, не имеет значения, к какому X-серверу он подключен.
PS :Вот почему Xenocara не запускается на 2 разных vts при использовании vesa(4)
драйвера :он использует/dev/xf86
(акаoption APERTURE
)(xf86(4)
)для доступа к видеопамяти и устанавливает блокировку на этот файл устройства. Таким образом, это может работать с KMS