с выводом:
apple text1
peach text2
banana text3
melon text4
Для удаления строк, начинающихся с "яблоко" или " банан "я поставил:
perl -pe 's/^apple.*\n|^banana.*\n//g'
И вывод правильный:
peach text2
melon text4
Но я хочу также удалить, например, возможные" папайю "или" манго ". Для этого я применяю закон Де Моргана:
perl -pe 's/^(?!peach).*\n&^(?!melon).*\n//g'
Но ничего не удаляется, потому что пока "|" означает «или», «&» не работает.
Какой символ означает «и» в команде bash perl?
Вы можете объединить два совпадающих выражения следующим образом:
perl -pe 's/^(?!peach)(?!melon).*\n//g'
или вы можете использовать оператор «или» следующим образом:
perl -pe 's/^(?!(peach|melon)).*\n//g'