Чтобы изменить яркость экрана, вы можете использовать xrandr
.
Для этого вы можете:
xrandr -q | grep ' connected' | head -n 1 | cut -d ' ' -f1
Это вернет все подключенные мониторы (, такие как LVDS-1
или DVI-D-0
, например ).
Теперь, чтобы изменить яркость экрана, введите команду (и замените DVI-D-0
предыдущим выводом команды):
xrandr --output DVI-D-0 --brightness 0.7
Например, эта команда устанавливает яркость на 70%.
Надеюсь, это поможет!
Мы используем утилиту awk , чтобы применить логику триггера для переключения из состояния «включено» в состояние «выключено», как показано:
$ awk -v str="==" '
$0""==str{f=!f;next};f
' testfile
Last test
Используя конструкции Posixly sed , мы можем реализовать логику триггера:
sed -ne '
/^==$/{
x; # access state info from hold
s/^$/0/; # initialize state
y/01/10/; # toggle state
x; # save state in hold
d; # next
}
G;/\n1/P
' testfile
Использование GNU-версии потокового редактора sed в расширенном режиме-E
$ sed -Ee '
$!N; /^(\S)\1+\n/!D
:loop
$d;N
s/^(.*)\n(.*)\n\1$/\2/;t
bloop
' testfile
This is a test
Another test
Last test
Примечания:-
N
. Используя оператор флип -флоп ...
в perl мы можем сделать как показано:
perl -lne 'print if
/^(\S)\1+$(?{$a=$_})/... $_ eq $a and $_ ne $a;
' testfile
Для фиксированных предопределенных строк искать еще проще, потому что тогда нам не нужно создавать регулярное выражение, а будет достаточно теста на равенство строк:
$ perl -nlse 'print if
$_ eq $a... $_ eq $a and $_ ne $a;
' -- -a=== testfile
$ sed -Ee '
/^==$/!d
$!N
:a
$d;N
s/^(.*)\n(.*)\n\1$/\2/;t
ba
' testfile
Я бы использовалperl
:
$ perl -0777 -ne 'print $3 while /^((\S)\2+\n)(.*?)^\1/smg' < your-file
This is a test
Another test
Last test
илиpcregrep
:
$ pcregrep -Mo3 '(?s)^((\S)\2+\n)(.*?)\n?^\1' < your-file
This is a test
Another test
Last test
Если речь идет только о возврате того, что находится между фиксированными разделителями:
$ pcregrep -Mo1 '(?s)^==\n(.*?)\n?^==$' < your-file
Last test
команда:
awk '{a[++i]=$0}/==/{for(x=NR-1;x<NR;x++)print a[x]}' filename|sed '/^$/d'
выход
This is a test
Another test
Last test
Похоже, ваш вопрос не был понятен, и вы получили различные варианты решения. Чтобы получить только содержимое, окруженное ==
с синтаксисом/функцией GNU sed
(, может отличаться от других реализаций ):
$ sed -n '/^==$/,//{//!p}' testfile
Last test
Вsed
есть способ выбрать диапазон строк, указав два адреса , разделенные запятой. Чтобы избежать повторения регулярного выражения, вы можете использовать здесь //
. Поскольку вы не хотите, чтобы сами строки маркеров выводились, вы можете отменить эти совпадения. {}
используется для группировки команд, которые должны выполняться только для совпадающих строк.