Если у вас есть сотни строк в текстовом файле и вы хотите массово удалить строки, содержащие слово или строку, эта статья для вас.
Давайте воспользуемся отличным сторонним текстовым редактором Notepad ++ (бесплатно) для удаления строк, содержащих слово, в текстовом файле разными способами.
Удалить строки, содержащие слово, фразу или строку в текстовом файле
Сценарий: У меня огромный HOSTS
файл, содержащий в себе тысячи строк. Я хочу удалить из файла записи рекламного сервера MSN. Другими словами, мне нужно удалить строки, содержащие строку «.msn.com» в HOSTS
файл. Давайте использовать Notepad ++ для этой работы.
Связанный: Как заменить Блокнот Notepad ++ или любым другим текстовым редактором?
Заметка: Как всегда, обязательно создайте резервную копию текстового файла перед его изменением.
Способ 1: удаление строк с помощью функции закладки в Notepad ++
- Откройте текстовый файл с помощью Notepad ++
- Нажмите Ctrl + F, чтобы открыть диалоговое окно «Найти и заменить».
- Нажмите, чтобы выбрать отметка Вкладка.
- Введите искомое слово или фразу в текстовом поле «Найти что». В этом примере я буду печатать
.msn.com
- Включить Строка закладки флажок.
- Поставил Режим поиска к нормальному.
- щелчок Пометить все.Это отмечает (закладки) все строки, содержащие строку
.msn.com
, как видно ниже: - Закройте диалог поиска, нажав Закрыть
- В меню «Поиск» выберите «Закладка» и нажмите Удалить отмеченные строки.
Это удаляет все строки, которые содержат строку поиска / слово / фразу в текстовом файле.
Как удалить строки, которые не содержат слово или строку?
Чтобы сделать обратное — например, удалить строки, которые не содержат слова или фразы:
- Повторите шаги 1 → 8 выше.
- На шаге 9 в меню поиска в Notepad ++ щелкните Удалить неотмеченные строки
Это удаляет все строки, кроме тех, которые содержат искомое слово или строку.
Метод 2: Удалить строки, используя метод Find и Replace с RegEx
Этот метод использует регулярные выражения для поиска и замены строк, содержащих слово или фразу. Этот метод очень эффективен, так как вы можете сопоставить практически что угодно (например, слова «начинающиеся с» или строки, имеющие определенный «шаблон»).
- Откройте текстовый файл с помощью Notepad ++.
- Нажмите Ctrl + F, чтобы открыть диалоговое окно «Найти и заменить».
- Нажмите на замещать вкладка, чтобы выбрать его.
- в Найти то, что: текстовое поле, введите искомое слово, перед и после
.*
например, если вы хотите заменить строки, содержащие словоbooks
, вы наберете.*books.*
Принимая во внимание, что это немного отличается в нашем случае где у нас есть два (специальные)
.
(точка) символы в нашей строке поиска.msn.com
, Таким образом, нам нужно ввести следующее в Найти то, что: текстовое окно:.*\.msn\.com.*
.*
— соответствует любому символу любое количество повторений.\.
— используется для выхода из точки (.) Итак, система понимает, что вы ищете совпадение со строкой.msn.com
- Установите режим поиска на Регулярное выражение
- Убедитесь, что Заменить: текстовое поле оставлено пустым.
- щелчок Заменить все.Теперь Notepad ++ заменяет все совпадающие строки на пустые. В диалоговом окне «Заменить» вы увидите количество замененных вхождений. Далее вам нужно удалить эти пустые строки.
- Закройте диалог поиска / замены.
- Чтобы удалить пустые строки, нажмите редактировать → Линейные операции → Удалить пустые строки.
Это удаляет все строки, кроме тех, которые содержат искомое слово или строку.
Как удалить строки, которые не содержат слово или строку, используя Regex?
Чтобы сделать противоположное вышесказанному, т.е. удалить строки, которые не содержат слова или фразы, с помощью Regex:
- Выполните шаги с 1 по 3 выше.
- На шаге 4 используйте ключевое слово поиска regex
^(?!.*\.msn\.com).*$
Приведенный выше оператор поиска находит строки, которые не содержат слово или строку
.msn.com
и заменяет их пустыми строками. - Затем выполните шаги с 5 по 9, чтобы удалить пустые строки.
Это оно! Надеюсь, что вышеуказанные методы оказались полезными для быстрого удаления строк, содержащих (или не содержащих) определенную строку, слово или фразу в текстовом файле.