Ярлык Win+стрелка Kali linux

ну наконец-то я разобрался со следующей строкой:

 awk '$1 ~ /m.o./ { n=NR+3}n && $3+0 > 0 { n=0 } {if ( n != 0 && $2 != "1" && $3+0 < 0) { count++; }} END { print count }' input

Проблема раньше заключалась в том, что каждое выражение, казалось, действовало на весь документ независимо, поэтому я не мог заставить условие работать только в пределах диапазона строк, что привело к подсчету многих других строк, которые я не учел. хотите, чтобы вас считали. Я продолжал получать значения больше, чем правильный ответ 3.

Например, при использовании флагов --, которые казались распространенным решением этой проблемы в сети --, казалось, что флаги не активировались в соответствующих строках, или подсчет происходил за пределами диапазона строк. разрешено флагами. Он считал линии, которые даже не были частью моего шаблона. В коде Inian исключались строки с шаблоном >>>> (, которые по какой-то причине возвращали совпадение счетчика ), но были и другие шаблоны, которые не совпадали, и было неразумно находить их все с 20 тыс. строк в документ.

Это то, что наконец сработало для меня.

 $1 ~ /m.o./ { n=NR+3}n

таким образом сценарий начинался с первого экземпляра, где $1 содержал «m.o.». Мне нужно было указать $1, чтобы избежать второго появления шаблона m.o. в сценарии. К счастью, второй экземпляр был за 2 доллара, поэтому я избежал его, сопоставив только за 1 доллар. Я не знаю, как этого избежать, если оба были в одном столбце.

В момент совпадения n определяется как номер строки (NR )плюс 3 в скобках, затем как-то записывается путем добавления его снова вне скобок. Таким образом, я, кажется, могу использовать awk, чтобы начать с шаблона плюс произвольное количество строк.

  && $3+0 > 0 {n=0}

Это позволяет мне заканчивать диапазон строк в соответствии с переменным условием, а не в соответствии с шаблоном (многие другие решения в Интернете сопоставляют определенный строковый шаблон, используя /pattern/ для определения конца диапазона строк, который Я не мог понять, как адаптировать здесь ).

Я полагаю, что && поддерживает сопоставление шаблона с предыдущим, чтобы связать начальную точку, а затем для любой последующей точки в документе, где $3 > 0 (мое условие ), n становится равным нулю.

Наконец, у меня есть способ связать начальную и конечную строки.

Теперь я могу применить желаемую функцию в пределах этого диапазона, а именно подсчет строк в соответствии с условием.

   {if ( n != 0 && $2 != "1" && $3+0 < 0) { count++; }}

Я остаюсь в пределах своего диапазона строк, вызывая первый член. :Если n не равно нулю, что имеет место только в случае совпадения моего шаблона и условий, которые я установил. В пределах этого диапазона строк сценарий извлекает строки, в которых $2 не равно 1, а $3 является отрицательным. Это увеличивает мою переменную count на 1 для каждого экземпляра.

   END { print count }' input

В конце скрипта выводится суммарное количество переменных для моего входного файла.

0
05.02.2021, 12:59
1 ответ

В Gnu/Linux есть выбор оконных -менеджеров (и сред рабочего стола)

Смена диспетчера окон аналогична смене -версии MS Windows, но без выхода из системы или закрытия каких-либо приложений.

Я не знаю, какой оконный менеджер kali использует (, вероятно, простой, с низким уровнем ресурсов ). Я знаю, что многие оконные менеджеры поддерживают то, что вы пытаетесь сделать.

Я использую KDE Plasma (Диспетчер окон и среда рабочего стола ). Он поддерживает то, что вы пытаетесь сделать (, как и другие ). KDE Plasma также поддерживает все остальное, что я видел в системе MS -Windows, и многое другое (Для изменения разделения экрана требовался плагин. Плагин делает немного больше, чем MS).

0
18.03.2021, 22:32

Теги

Похожие вопросы