grep
подход
Чтобы создать копию файла без строк, соответствующих "cat" или "rat", можно использовать grep
в обратном порядке (-v
) и с опцией полного слова (-w
).
grep -vwE "(cat|rat)" sourcefile > destinationfile
Опция "целое слово" гарантирует, что оно не будет совпадать cats
или grateful
например. Используется перенаправление вывода вашей оболочки (>
), чтобы записать его в новый файл. Нам нужны -E
опция для включения расширенных регулярных выражений для (one|other)
синтаксис.
sed
подход
В качестве альтернативы, чтобы удалить линии на месте, можно использовать sed -i
:
sed -i "/\b\(cat\|rat\)\b/d" filename
То \b
устанавливает границы слов и d
операция удаляет строку, соответствующую выражению между косыми чертами. cat
и rat
оба сопоставляются с помощью (one|other)
синтаксис, который нам, по-видимому, нужно экранировать с помощью обратной косой черты.
Совет: используйте sed
без того, чтобы -i
оператор для проверки выходных данных команды перед перезаписью файла.
(На основе Sed - Удаление строки, содержащей определенную строку)