Как я могу удалить строки, соответствующие нечто, но не соответствующие панели?

Можно использовать nmap для выполнения исследования хоста.

2
27.10.2014, 23:08
2 ответа

Несколько альтернатив:

awk '! (/foo/ && !/bar/)'
awk '/bar/ || !/foo/'
sed -e /bar/b -e /foo/d
sed '/foo/{/bar/!d;}'
perl -ne 'print unless /foo/ && !/bar/'

GNU grep с поддержкой PCRE:

grep -vP '^(?!.*bar).*foo'

(используя оператор PCRE отрицательный оператор look-ahead (?!...)).

Из них только perl позволяет осуществлять редактирование вручную (на системах, где установлена любая версия perl) с опцией -i.

Стандартный sed не делает редактирования на месте. Однако sed некоторых недавних BSD позволяет использовать опцию -i '' и GNU sed с -i (оба моделированы после perl) в качестве расширения.

Современные версии GNU awk также позволяют использовать -i на месте .

4
27.01.2020, 21:50

Кажется, работает для меня таким образом:

sed '/foo/{/bar/!d;}' my_file
5
27.01.2020, 21:50

Теги

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