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).*$

  • Объединить строки Excel с двух листов
  • Почему sed требует 3 обратных косых черт для регулярной обратной косой черты?
  • grep с использованием символьного вектора с несколькими шаблонами
  • java regex шаблон закрытого символьного classа
  • Является gcc 4.8 или более ранней ошибкой регулярных выражений?
  • Regex для сопоставления маршрутов в Express
  • Как «обратный матч» с регулярным выражением?
  • Как создать ярлык для команды find и replace в vim?
  • разделить строку, разделенную запятыми, как с кавычками, так и с номерами без кавычек
  • RegEx для исключения конкретной строковой константы
  • Regex: Я хочу, чтобы это И было И что ... в любом порядке
  • Interesting Posts
    Давайте будем гением компьютера.