Я хочу удалить все строки в файле, который содержит один шаблон, но не другой.sed - удалить все строки, содержащие один шаблон, но не другой
Например, если у меня есть этот файл:
hello people foo
hello world bar
hello something
blah blah blah
Я хочу, чтобы удалить все строки, содержащие hello
, но не world
, так что мой файл выглядит следующим образом:
hello world bar
blah blah blah
I попробовал следующее:
sed -n '/hello/p' file | sed -i '/world/!d'
Но я получаю сообщение об ошибке
К сожалению, ответы sed не сработали для меня, поэтому я реализовал этот – Bolboa
. Это не изменяет файл, а просто возвращает результат. Как сохранить его в файл? – BigDong
@BigDong 'awk '...' file> hello.tmp && mv hello.tmp file' – Kent