Regex: удалить строки, содержащие

У меня длинный документ команд. Используя notepad ++ или regex, я хочу удалить все строки, содержащие «help», включая keyboard_help и т. Д.

Как это может быть сделано?

6 Solutions collect form web for “Regex: удалить строки, содержащие”

Это также возможно с помощью Notepad ++

  • Перейдите в меню поиска Ctrl + F и откройте вкладку "Mark" .
  • Проверьте "Bookmark line" (если в текущую версию отсутствует вкладка "Mark" ).

  • Введите поисковый запрос и нажмите "Mark All"

    • Все строки, содержащие поисковый запрос, отмечены закладкой.
  • Теперь перейдите в меню "Search -> Bookmark -> Remove Bookmarked lines"

  • Готово.

Другой способ сделать это в Notepad ++ – это все в диалоговом окне Find / Replace и с регулярным выражением:

  • Ctrl + h, чтобы открыть диалог поиска.

  • В текстовом поле « Find what: введите ваше регулярное выражение:. .*help.*\r?\n (где \r является необязательным, если в файле нет окончаний строки Windows).

  • Оставьте поле « Replace with: текстовое поле пустым.

  • Убедитесь, что выбран переключатель «Регулярное выражение» в области «Режим поиска». Затем нажмите « Replace All и «вуаля»! Все строки, содержащие вашу поисковую help , были удалены.

Замена How-To Line в N ++

Легкая задача с grep :

 grep -v help filename 

Добавить > newFileName для перенаправления вывода в новый файл.


Обновить

Чтобы прояснить это, нормальное поведение будет печатать строки на экране. Чтобы передать его в файл, можно использовать>. Таким образом, в этой команде:

 grep -v help filename > newFileName 
  1. grep вызывает программу grep , очевидно
  2. -v – это флаг для обратного вывода. С помощью defaulf grep печатает строки, соответствующие заданному шаблону. С помощью этого флага он напечатает строки, которые не соответствуют шаблону.
  3. help – шаблон, соответствующий
  4. filename – имя входного файла
  5. > перенаправляет вывод на следующий элемент
  6. newFileName новый файл, где вывод будет сохранен.

Как вы заметили, вы не будете удалять вещи в своем файле. grep прочитает его, и другой файл будет сохранен, соответственно измененный.

Вы можете сделать это, используя sed: sed '/help/ d' < inputFile > outputFile

Если вы в Windows попробуйте findstr , вам не нужны сторонние инструменты:

 findstr /V /L "searchstring" inputfile.txt > outputfile.txt 

Он также поддерживает регулярное выражение! Просто прочитайте подсказку инструмента findstr /?

PS Если вы хотите работать с большими, ОГРОМНЫМИ файлами (например, файлами журнала 400 МБ), текстовый редактор не очень эффективен с точки зрения памяти, поэтому, как уже указывалось, инструменты командной строки – это путь. Но на windowsх нет grep, поэтому …

Просто запустил это в файле журнала 1 ГБ, и буквально он занял 3 секунды.

Поиск с регулярным выражением:

^.*(help).*$

  • Perl для сопоставления с регулярными выражениями в терминале?
  • Как сопоставить дефисы с регулярным выражением?
  • Регулярное выражение для соответствия строке, которая не содержит слова?
  • Признавательная способность «современных» регулярных выражений
  • Регулярное выражение, соответствующее действительным адресам IPv6
  • Как включить новые строки в поиск меньше?
  • Regex Именованные группы в Java
  • Заменить первое вхождение шаблона в строку
  • Есть ли команда linux, например mv, но с регулярным выражением?
  • Как написать регулярное выражение, которое соответствует не жадным?
  • Регулярное выражение, которое не содержит определенной строки
  • Interesting Posts

    Команда Windows для отображения всех IP-адресов

    ValidateAntiForgeryToken цель, пояснение и пример

    Извлечение фоновых изображений из файла PDF?

    Виртуальная папка, объединяющая каталог только для чтения и чтения-записи (дедупликация файлов)

    Выйти из мессенджера в Windows 8

    Как узнать, загружается ли установщик Windows в EFI или BIOS?

    как применять группу по элементам xslt

    Как использовать инструкцию pass?

    Индикатор питания всегда остается включенным после выключения ноутбука

    Как отслеживать, какая программа делает сетевое соединение? (CentOS)

    Как установить clonezilla на Ubuntu 9.10?

    Когда следует использовать nil и NULL в Objective-C?

    Почему виртуальный бокс имеет только 32-битную опцию, а не 64-битную опцию в Windows 7?

    Как я могу прочитать файл даже при получении исключения «в использовании другим процессом»?

    Как UPSERT (MERGE, INSERT … ON DUPLICATE UPDATE) в PostgreSQL?

    Давайте будем гением компьютера.