Debian 9 разрешает скрытые запросы DNS?

Если шаблон не может встречаться в последовательных строках, можно просто выполнить

sed '$!N;/.*\n.*PATTERN.*/P;D' infile

Я объяснял здесь, как работает цикл N;P;D. Разница в том, что здесь первая строка в пространстве шаблона печатается только в том случае, если вторая совпадает, иначе она удаляется.


Если шаблон может встречаться в последовательных строках, то приведенное выше решение выведет строку с совпадением, если за ней следует другая строка с совпадением.
Чтобы игнорировать последовательные совпадения, добавьте второе условие для печати первой строки в пространстве шаблона, только если она не совпадает:

sed '$!N;/.*\n.*PATTERN.*/{/.*PATTERN.*\n.*/!P;};D' infile

Другой способ, используя буфер удержания.
Если вы хотите игнорировать последовательные совпадения:

sed '/PATTERN/!{              # if line doesn't match PATTERN
h                             # copy pattern space content over the hold buffer
d                             # delete pattern space
}
//{                           # if line matches PATTERN
x                             # exchange pattern space with hold space
//d                           # if line matches PATTERN delete it
}' infile

или, в одной строке

sed '/PATTERN/!{h;d;};//{x;//d;}' infile

Если вы не хотите игнорировать последовательные совпадения:

sed '/PATTERN/!{              # if line doesn't match PATTERN
h                             # copy pattern space content over the hold buffer
d                             # delete pattern space
}
//x                           # if line matches PATTERN exchange buffers
' infile 

или, в одной строке

sed '/PATTERN/!{h;d;};//x' infile

Хотя имейте в виду, что решения, использующие буфер удержания, будут печатать ведущую пустую строку, если первая строка в вашем файле совпадает.

0
18.10.2018, 00:34
1 ответ

Это:

ACCEPT     tcp  --  192.168.1.1          0.0.0.0/0            tcp dpt:53
ACCEPT     udp  --  192.168.1.1          0.0.0.0/0            udp dpt:53

означает, что вы разрешаете исходящие запросы с 192.168.1.1 на порт 53. Вам понадобится аналогичное правило с исходным портом 53.

0
28.01.2020, 04:12

Теги

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