Использованиеgrep
:
{ grep -E '^(OTP )?XY:' input_file; grep -E -v '^(OTP )?XY:' input_file; } > ouput_file
2 команды grep
фильтруют input_file
с и без(-v
)нужного шаблона.
{... } > output_file
сохраняет оба вывода grep
в файл.
I expected to be able to target X windows to my left and right monitor using :0.0 and :0.1
Это справедливо только для левого и правого мониторов, которые на самом деле будут использовать два X-экрана , чего вы обычно не увидите, если не настроите его самостоятельно.
По умолчанию большинство современных систем используют Xinerama , что означает, что вы получаете один X-экран с двумя xrandr
выходами, считывающими данные из одного и того же буфера кадра в разных местах.
Но только вы можете рассказать нам, как устроена ваша система (прочтите /var/log/Xorg.log
, чтобы узнать ).
Error: Can't open display: :0.1
Это подтверждает сделанное выше предположение. :У вас нет двух экранов X.
So how do I address this secondary display and know what to address it as?
Посмотрите на вывод xrandr
, посмотрите, есть ли у вас два вывода , подключенные к одному и тому же буферу кадра (, т. е. все они перечислены вScreen 0
).
Если да, это означает, что вам нужно разместить окно в определенной позиции, чтобы оно отображалось на левом или правом мониторе (или на обоих, одна половина слева, другая половина справа ).
Ваш Диспетчер окон(WM ), который в большинстве современных дистрибутивов интегрирован в окружение вашего рабочего стола, может влиять на размещение окон, а при правильной настройке может помочь разместить его на позиции (и, следовательно, монитор ), который вы хотите.
Многие (, но не все )X-приложения также поддерживают опцию -geometry
(прочтите справочную страницу ), которая снова помещает окно в определенную позицию, но WM может свободно переопределить это, так что, если это не работает, вот почему.
Если вы не используете современную настольную систему и даже не планируете использовать оконный менеджер (, который еще десятилетия назад все делали; X означает означает наличие оконного менеджера ), тогда вам нужно расположить и изменить размер каждого окна отдельно с помощью командной строки (, и это также определит, на каком экране они будут отображаться в вашем текущем наборе параметров ). ] ;вы не сможете изменять размеры или перемещать окна и т.д. (А если вы можете это делать, то у вас где-то есть WM, даже если вы этого не осознаете ).
Вы также можете настроить X так, чтобы он использовал два экрана, по одному для каждого выхода. Вам нужен пользовательский файл xorg.conf
. Вот файл, который я использовал для оборудования Intel с одним экраном для HDMI3 (, когда недавно подключал свой телевизор, поэтому наличие двух экранов имело смысл):
Section "Device"
Identifier "intel0"
Driver "intel"
Option "AccelMethod" "sna"
Option "ZaphodHeads" "VGA1,HDMI1,DP1"
Screen 0
EndSection
Section "Device"
Identifier "intel1"
Driver "intel"
Option "AccelMethod" "sna"
Option "ZaphodHeads" "HDMI3"
Screen 1
EndSection
Section "Screen"
Identifier "screen0"
Device "intel0"
EndSection
Section "Screen"
Identifier "screen1"
Device "intel1"
EndSection
Section "ServerLayout"
Identifier "default"
Screen "screen0" 0 0
Screen "screen1" Below "screen0"
EndSection
Вам потребуется адаптировать его к вашему оборудованию и требованиям; различному оборудованию могут потребоваться разные параметры (, например, тогда, когда я делал это, оборудованию Intel требовались AccelMethod и ZaphodHeads ). Ожидайте потратить довольно много времени, чтобы сделать эту работу правильно.