Это удаляет строки, содержащие только одно вхождение C.
grep -v '^[^C]*C[^C]*$' file
Регулярное выражение [^C]
соответствует одному символу, который не является C (или новой строкой), и оператору повторения (также известному как Kleene звездочка) *
указывает ноль или более повторений предыдущего выражения.
По умолчанию вывод grep
(и большинства других текстовых инструментов) — стандартный вывод; перенаправить на новый файл и, возможно, переместить его поверх исходного файла, если вы этого хотите. То же самое регулярное выражение можно использовать с sed -i
для редактирования на месте:
sed -i '/^[^C]*C[^C]*$/d' file
(На некоторых платформах, особенно *BSD, включая macOS, параметр -i
требует аргумента, например -i ''
.)