Notepad удалить строки короче

Обновлено: 07.07.2024

Я пытаюсь редактировать документ из 20000 строк. Я должен удалить каждую нечетную строку, скажем, например:

Как я могу удалить символы каждой нечетной строки в документе?

что вы подразумеваете под нечетной строкой? Вы хотите удалить лишнее (нежелательное) слово из всего документа? Каждые нечетные строки, как 1,3,5,7,9,11,13,15 . и так далее. Попробуйте заменить на новую строку (регулярное выражение): [\ n. + \ N] Я записал бы глупый макрос: стрелка вниз, стрелка сдвига вниз, del.

Вы можете сделать это с помощью поиска и замены:

  • Откройте диалог замены ( Ctrl + H )
  • Выберите «Регулярное выражение»
  • Найти то, что: .+\r\n(.+(\r\n|$))
  • Заменить:
    $1
  • Нажмите «Заменить все»
  • В зависимости от вашей ОС вам нужно использовать \r (старый Mac), \n (Unix, OS X) или \r\n (Windows), чтобы соответствовать концу строки, или просто использовать, \R который должен работать везде (спасибо за @Aurel Bílý)
  • \n|$ необходимо иметь правильный результат даже в конце файла
  • По умолчанию Notepad ++ заменяет фактическую позицию курсора на конец файла. Убедитесь, что поместили курсор в начало файла.
    • (Вы также можете проверить «обтекание», но в этом случае он сначала удалит строку, в которой находится ваш курсор, вместо того, чтобы действительно искать нечетную строку.)

    Введите описание изображения здесь

    Это почти работает, но не редактирует первый набор нечетных строк, скажем, от 1 до 15. Измените скриншот с большей прозрачностью этого окна замены. Обратите внимание, что \r конец строки встречается очень редко - он действительно использовался в Mac OS, но в классических версиях до OS-X. В OS X и далее окончания строк \n , как и любой здравомыслящий Unix. Также \R лучше подходит для соответствия любому концу строки. @ AurelBílý Это правда, однако Notepad ++ работает только на Windows, поэтому переносимость здесь не является большой проблемой.
    • Ctrl + H
    • Найти то, что: .+\R(.+)
    • Заменить: $1
    • Replace all

    Объяснение:

    • Проверьте регулярное выражение
    • НЕ ПРОВЕРИТЬ . matches newline

    Результат для данного примера:

    @NithinN: имейте в виду, что принятый ответ не работает с файлами Linux (т.е. \n
    1. Откройте файл и поместите текстовый курсор в начале первой строки.
    2. Меню → МакросНачать запись
    3. Нажмите End клавишу на клавиатуре
    4. Shift + Home , тогда backspace
    5. Down
    6. Backspace
    7. Down
    8. Меню → МакросОстановить запись
    9. Меню → МакросЗапуск макроса несколько разУстановите флажок Выполнить до конца файла
    10. щелчок Run

    В основном выполните действие один раз, чтобы удалить нечетную строку, затем заставьте программу повторить действие до конца файла. Это может быть использовано для решения многих проблем!

    Я только что проверил на компьютере моего коллеги, который на самом деле использует Notepad ++. Попробуй это:

    Самые важные операции со строками в Notepad++. Как в notepad++ удалить текст в каждой строке до конца строки? Как в Notepad ++ добавить символ в начале строки?

    Notepad++. Как удалить строку

    Как начать работу со строками в Notepad++

    Notepad++. Как удалить строку

    Основные настройки для операций в Notepad++.

    Как удалить дубли строк в Notepad++

    Удаление дублирующих строк в Notepad++

    Удаление дублирующих строк в Notepad++

    Как добавить символы в начало строки в Notepad++

    Удалить строку после определенного символа в Notepad++

    Как в Notepad++ удалить текст в каждой строке до конца строки после заданного

    Как в Notepad ++ добавить символ в начале каждой строки?

    Как удалить все строки длиннее, например, 10 символов?

    Найти: ^[^\r\n]?\r\n
    Заменить на пустую строку.

    Как удалить пустую строку в Notepad++

    Как удалить строку и перенос строки?

    Делаем поиск по регулярному выражению:
    .*Слово.*
    Затем заходим в раздел TextFX -> TextFX Edit -> Delete Blank Lines (необходимо предварительно установить плагин TextFX )

    Добавление знаков в начале и конце строки

    Добавление круглых скобок () в поле найти обязательно, иначе текст будет удален.

    Удаление пустых строк, содержащих пробелы

    Удаление всех символов в строке после обнаружения в строке пробела

    Найти: ^(.+?)\s.+$
    заменить на: \1

    Как удалить строки меньше, например, 40 символов?

    Как убрать разные символы после строки в Notepad++?

    ^.*»
    заменяем на пустоту

    Регулярные выражения в Notepad++:

    . — Точка представляет один любой символ
    ^ — Начало строки
    $ — Конец строки
    \s — Пробел
    \S — Не Пробел
    \w — буква, цифра или подчёркивание _
    \d — Любая цифра
    \D — Любой символ, но не цифра
    3 — Любая цифра
    [a-z] — Любая буква от a до z (весь латинский набор символов) в нижнем регистре
    [A-Z] — Любая буква от a до z в ВЕРХНЕМ регистре
    [a-zA-Z] — Любая буква от a до z в любом регистре
    [a-Z] — То же самое
    * — «Повторитель». Означает, что предшествующий символ может повторяться (0 или более раз)
    .* — Абсолютно любой набор символов. Например, условие

    — найдет все что между тегами

    Читать далее:

    Отзывы 4

    Добрый день.
    Подскажите регулярку для Notepad++, голову сломал, то одно не так, то другое(

    Есть документ с некоторым количеством строк. В каждой строке могут быть латинские (и кириллица) буквы и слова+цифры+символы. Порядок неизвестен.

    Пример:
    фурнитура winkhaus
    winkhaus 2013 f dk
    analog couple ja 388 фурнитура
    пластиковое окно фурнитура
    [winkhaus] 23003 000711 limited edition auto mechanical skeleton gold black

    Нужно удалить все строки, кроме содержащих кириллицу. Должны остаться 1-я, 3-я и 4-я строки.

    Нашел решение, подсказали на серче.
    Делюсь.
    ^[^а-я]*$
    А потом просто удалить пустые строки

    Вот теперь интересно как сделать то же самое, только нужно удалить все строки с кириллицей)

    У меня есть текстовый файл, и я хочу, чтобы строки начинались с <Path> , и удалял все остальные строки.

    Как я могу это сделать?

    Существует простой способ добиться этого. Вам нужно выполнить 3 шага.

    Зайдите в меню «Поиск»> «Найти . »> выберите вкладку «Отметить». Активируйте регулярные выражения. Поиск ^<Path> ( ^ для начала строки). Не забудьте проверить «Закладки линий» и нажать «Отметить все»

    ==> Все строки, которые вы хотите сохранить, имеют закладки

    Зайдите в меню «Поиск - Закладка - Обратная закладка»

    ==> Все строки, которые вы хотите удалить, добавлены в закладки.

    Зайдите в меню «Поиск - Закладка - Удалить отмеченные строки»

    ==> Все отмеченные строки будут удалены.

    +1. Хорошо, не знал об этом. Есть также варианты «Удалить непомеченные линии» или «Вырезать / копировать отмеченные линии», которые могут сэкономить некоторое время. Сначала у меня были проблемы, потому что моя версия (6.2.3) Notepad ++ не имеет пункта меню с именем «Mark Tab». Вместо этого вам нужно перейти в «Поиск» -> «Найти . » -> нажать на вкладку «Отметить». И вам больше не нужно инвертировать закладки. Notepad ++ теперь имеет «Удалить неотмеченные строки». Но твой совет мне очень помог! Спасибо! Вы можете пропустить шаг 2, потому что можно (по крайней мере, начиная с v6.4.5) выбрать «Удалить непомеченные линии». Я так долго пользуюсь Notepad ++ и никогда раньше не знал, что такое «Закладки». Удивительно, насколько мощный этот инструмент и как мало я знаю о нем. Вы гениальный. это еще один шокирующий пример того, как узнать инструмент, который вы используете на самом деле.

    На самом деле это можно сделать в два этапа, начиная с 6.3. Я думаю, что это может быть сделано раньше, чем у меня было 5,9, когда я впервые попробовал.

    Поиск меню «Найти». В диалоговом окне «Найти» перейдите на вкладку «Отметить». Активируйте регулярные выражения. Поиск ^<Path> ( ^ для начала строки). Не забудьте проверить «Закладки линий» и нажать «Отметить все»

    ==> Все строки, которые вы хотите сохранить, теперь имеют закладку

    Меню поиска -> Закладка -> Удалить неотмеченные строки.

    ==> Все не отмеченные закладкой строки будут удалены.

    Это заняло у меня 10 секунд, в то время как другое решение заняло у меня> 20 секунд. Спасибо! Мне не нужно было добавлять ^ в мой поисковый запрос или использовать регулярные выражения. Надеюсь, это кому-нибудь поможет.

    Двухступенчатый вариант

    регулярное выражение заменить

    замените тест запрошенным текстом

    Одношаговый вариант

    Используйте ^(?!<Path>).*\r\n для замены совпадений пустой строкой. Обобщенная версия будет ^(. *?test).*\r\n . Это не удалит пустую строку в конце файла. Все остальные строки удаляются, включая несколько последовательных пустых строк.

    Объяснение:

    (?!) это отрицательный взгляд вверх. ^.*test.*$ выделяет всю строку, содержащую запрашиваемый текст.

    [\r\n] соответствует любому \r\n , встречающемуся более чем один раз, когда это строка Windows New. если у вас Linux или другая операционная система, вам может понадобиться возиться с этим. во-вторых, заменить его одной обратной строкой.

    Примечание для людей: иногда регулярное выражение с концом строки (EOL) «не работает». \r\n EOL упоминается в посте , что использует Windows , и , следовательно , может или не может быть то , что вы ищете. Часто в средах Linux это просто \n или в средах Mac просто \r , так что если вы извлекаете файл из одного из них, это не будет EOL в стиле Windows. Однако, если вы загружаете через FileZilla и триггеры режима ASCII, он может изменить их обратно на Windows EOL (как \n в \r\n ). Поэтому, если регулярное выражение не работает, проверьте стиль EOL, выбрав «Вид> Показать символы> Показать конец строки». CR = \r . LF = \n .

    Мне кажется, что самый простой способ - просто использовать функцию «Найти все в текущем документе», а затем либо скопировать результаты в новый файл, либо выбрать все и заменить в текущем.

    Это позволит найти все строки, содержащие ваш текст, и перечислить их внизу. Просто щелкните правой кнопкой мыши на результат поиска и скопируйте / вставьте.

    Вы должны удалить номера строк, заменив \tLine [\d]*: . Все еще отличный ответ. Это не будет работать для строк, которые настолько широки, что Notepad ++ усекает его в окне результатов поиска.

    Зайдите в меню Поиск -> Найти . -> Активируйте регулярные выражения. Поиск «^ Путь » (^ для начала строки).

    Нажмите на кнопку «Найти все в текущем документе».

    Появится окно «Найти результат» со всеми линиями шаблона. Выберите скопировать / вставить их на новую вкладку в Notepad ++.

    В этой новой вкладке попали: меню Поиск -> Заменить - -> Активировать регулярные выражения.

    В поле «Найти что:» используйте шаблон: «Линия \ d +:». Оставьте поле «Заменить на» пустым.

    Нажмите на кнопку «Заменить все».

    Если вы действительно хотите сопоставить, <Path> а не путь к файловой системе, вы можете попробовать это из командной строки, используя Perl:

    Он работал со Strawberry Perl в Windows, поэтому настройте его соответствующим образом, если результаты не соответствуют ожидаемым.

    Это неуклюже, но скопируйте все это в Excel , а затем используйте =IF(LEFT(A1,6)="<Path>",A1,"") и скопируйте эту формулу до конца. Затем скопируйте это обратно в Notepad ++. Это не идеально, но довольно просто (если у вас есть Excel). Предупреждение: он не будет хорошо работать с отступами (Excel сместит столбцы и т. Д.).

    Если есть несколько способов выполнить эту задачу напрямую, зачем вам деструктивно копировать в другое приложение, обрабатывать его и возвращать обратно?

    Нет простого способа сделать то, что вы хотите с помощью Notepad ++. Вам нужно будет либо загрузить программу на свой компьютер, либо написать скрипт на VB (я полагаю, вы работаете в Windows).

    Удалить все строки, не содержащие:
    sed -i '/^<PATH>/!d' file

    Вывести все строки, содержащие в новый файл:
    sed -n '/^<PATH>/p' file > newfile

    Пример: sed -n '/^\/var\/www/p' file > newfile
    это распечатает все строки, которые начинаются с '/ var / www'. Если бы я подал запрос на экранирование символа /, команда выдаст ошибку. Вы можете экранировать специальный символ (такой как /) с помощью символа обратной косой черты \.

    Это может быть старый ответ, но так как на самом деле он невероятно имеет 2 голоса (-1 теперь от меня), он хотел прокомментировать не только то, насколько он ошибочен, но и повторить в единственной командной операции, как я просто (снова) взял строку> 100k файл журнала до 34 строк, содержащих одно слово (или фразу), в этом случае просто «ошибка» менее чем за 3 секунды, просто поместив это регулярное выражение в НАЙТИ ЧТО: ^ (. *? error). * \ r \ n и оставив поле REPLACE WITH пустым, НЕ выбирайте «. соответствия новой строки» и нажмите «ЗАМЕНИТЬ ВСЕ». Да, я тоже люблю sed и awk, но говорить, что АЭС не может этого сделать, - просто ложь.

    Лучшее решение с регулярным выражением заменить:

    И заменить ничем

    Используйте Search-> Replace и введите регулярное выражение как ^[^ ].* и замените все на пустую строку, используя Regular expression . Следующий шаг - найти пустые строки в поисках \n\n замены с \n использованием Extended несколько раз до 0 occurrences were found. (используйте \r\n\r\n и в \r\n зависимости от формата файла). Если у вас очень много пустых строк в строке, это быстрее использовать \n\n\n\n\n\n\n или даже больше \n : s в строке поиска.

    Можно ли удалить дублированные строки в Notepad ++, оставив только одно вхождение строки?

    Notepad ++ может сделать это, если вы хотите сортировать по строкам и одновременно удалять дублирующиеся строки.

    Вам понадобится плагин TextFX. Раньше это было включено в более старые версии Notepad ++, но если у вас более новая версия, вы можете добавить ее из меню, перейдя в Plugins -> Plugin Manager -> Show Plugin Manager -> Available tab -> TextFX -> Install . В некоторых случаях это тоже можно назвать TextFX Characters , но это одно и то же

    Флажки и кнопка требуются теперь появятся в меню в разделе: TextFX -> TextFX Tools .

    Убедитесь, что «сортировать выходные данные только уникальные . » отмечен. Далее выберите блок текста ( Ctrl +, A чтобы выделить весь документ). Наконец, нажмите «сортировать строки с учетом регистра» или «сортировать строки с учетом регистра»

    расположение меню в n ++

    Невероятно мощный плагин, несмотря на его «возраст». Надеюсь, они НИКОГДА не уберут его из стандартного предложения плагинов для АЭС. Парень, который думал обо всех возможностях этого плагина, был своего рода «провидцем». А как насчет Notepad ++ x64 версии? Плагин TextFX x64-версии не существует @Geograph И не будет 64-битного плагина TextFx, см. Эту заметку . Поэтому было бы хорошо узнать, есть ли альтернативный плагин, обеспечивающий сортировку и удаление дубликатов.

    Начиная с версии Notepad ++ версии 6, вы можете использовать это регулярное выражение в диалоге поиска и замены:

    и заменить ничем . Это оставляет из всех повторяющихся строк последнее вхождение в файл.

    Для этого не требуется сортировка, и повторяющиеся строки могут находиться в любом месте файла!

    Вам необходимо проверить параметры «Регулярное выражение» и «. Соответствует новой строке»:

    Блокнот ++ Заменить диалог

    ^ соответствует началу строки.

    (.*?) соответствует любому символу 0 или более раз, но как можно меньше (это точно соответствует строке, это необходимо из-за опции ". соответствует новой строке"). Соответствующая строка сохраняется из-за квадратных скобок и доступна с помощью \1

    $ соответствует концу строки.

    \s+?^ эта часть сопоставляет все пробельные символы (символы новой строки!) до начала следующей строки ==> Это удаляет символы новой строки после соответствующей строки, так что после замены не остается пустой строки.

    (?=.*^\1$) это положительное прогнозное утверждение. Это важная часть в этом регулярном выражении, строка сопоставляется (и удаляется) только тогда, когда точно такая же строка следует в другом месте файла.

    о, это блестяще, оно даже удаляет пустые строки, я макрос этого прямо сейчас :) В некоторых случаях он просто удаляет ВСЕ строки в файле. Есть ли способ удалить последнее событие? Это соответствует всем, кроме последнего . В моем случае, когда это решение убрало все строки, сняв галочку, . matches newline сделали свое дело . @SerG В некоторых случаях это не сработало и для меня, но когда я убрал «соответствует новой строке», это сработало :)

    Если строки располагаются сразу после друг друга, вы можете использовать регулярное выражение замены:

    Возможно, другим повезло с этим, но для меня ^ (. * \ N) \ 1 приводит к «Не могу найти текст» @ b1naryatr0phy, убедитесь, что для «Режим поиска» установлено значение «Регулярное выражение», я также обновил шаблон, чтобы он мог обрабатывать окончания строк в стиле Windows notepad ++ имеет лёгкий движок регулярных выражений, он не допускает расширенных функций, даже «? или \ r \ n», так как он работает только в одной строке и вы используете $ для символов \ r \ n это устраняет один за другим. Вы должны повторить это много раз. Интересно, почему \ n + -> \ n не работает (хотя он сообщает о многих заменах) @Val, если вы сделаете часть обратной ссылки совпадения группой, для которой требуется 1 или более совпадений, шаблон будет соответствовать N смежным дублирующимся линиям одновременно: ^(.*\r?\n)(\1)+

    Notepad ++

    Убедитесь, что в режиме поиска вы выбрали переключатель « Регулярное выражение »

    Найти то, что:

    Заменить:

    Перед:

    и мы думаем там

    и мы думаем там

    одна линия

    Это возможно

    Это возможно

    После:

    и мы думаем там

    одна линия

    Это возможно

    Разве файл не должен быть отсортирован, чтобы это работало?

    Если вам не важен порядок строк (что, я думаю, вам не нужно), вы можете использовать Linux / FreeBSD / Mac OS X / Cygwin и сделать:

    Затем снова откройте файл в Notepad ++.

    Не работает на Windows 7. 'cat' is not recognized as an internal or external command, operable program or batch file. @Iain Elder: cat - это стандартная утилита Unix, поэтому в этом ответе указано, что она работает на linux, FreeBSD и MacOSX. Ответ также предполагает Cygwyn: это программа для Windows, которая предоставляет оболочку в стиле Unix, а вместе с ней и cat. Короче говоря (слишком поздно!): Win 7 нуждается в Cygwin для этого. В Windows у вас есть PowerShell: cat yourfile | sort -Unique Это хорошие примеры "безвозмездного использования кошки". Забудьте об утилите cat и просто используйте перенаправление файлов таким образом: sort <yourfile | uniq> yourfile_nodups @ scott8035, я согласен, что cat бесполезен для выполнения этой команды, но я часто нахожу полезным начинать с cat при вычислении длинной последовательности неочевидных команд, таких как cat file | сед . | сед . | Сед . и так далее. Поэтому я бы сказал, что могут быть причины для использования кошки. Конечно, кошка может быть удалена в конце, но некоторые слишком ленивы для этого.

    Последние версии Notepad ++, по-видимому, вообще не включают плагин TextFX. Чтобы использовать плагин для сортировки / устранения дубликатов, плагин должен быть либо загружен и установлен (более задействован), либо добавлен с помощью менеджера плагинов.

    А) Простой способ (как описано здесь ).

    Плагины -> Диспетчер плагинов -> Показать диспетчер плагинов -> вкладка «Доступно» -> Символы TextFX -> Установить

    Б) Более сложный способ, если нужна другая версия или простой способ не работает.

    Загрузите плагин от SourceForge:

    Откройте zip-файл и распакуйте NppTextFX.dll

    Поместите NppTextFX.dll в каталог плагинов Notepad ++, например:
    C: \ Program Files \ Notepad ++ \ plugins

    Запустите Notepad ++, и TextFX будет одним из пунктов меню файла (как видно из ответа №1 выше Колина Пикарда)

    После установки плагина TextFX следуйте инструкциям в Ответе № 1, чтобы отсортировать и удалить дубликаты.

    Кроме того, рассмотрите возможность настройки сочетания клавиш с помощью « Настройки»> «Сопоставление сокращений», если вы часто используете эту команду или хотите скопировать сочетания клавиш, такие как F9 в TextPad для сортировки.

    В notepad ++ 7.6 этот плагин должен быть добавлен в C:\Users\<your_user>\AppData\Local\Notepad++\plugins\NppTextFX . Кроме этого это все еще работает отлично.

    В версии 7.8 это можно сделать без каких-либо плагинов - «Правка» -> «Операции со строками» -> «Удалить последовательные дубликаты». Вам нужно будет отсортировать файл, чтобы поместить повторяющиеся строки в последовательном порядке, прежде чем это сработает, но это работает как шарм.

    Параметры сортировки доступны в меню «Правка» -> «Операции со строками» -> «Сортировка по . ».

    Вам может понадобиться плагин для этого. Вы можете попробовать командную строку cc.ddl (удалить дубликаты строк) ConyEdit . Это кросс-редактор плагин для текстовых редакторов, в том числе Notepad ++.

    Когда ConyEdit работает в фоновом режиме, выполните следующие действия:

    1. введите командную строку cc.ddl в конце текста.
    2. Скопируйте текст и командную строку.
    3. Вставьте, тогда вы увидите, что вы хотите.

    пример

    Поиск регулярного выражения: \b(\w+)\b([\w\W]*)\b\1\b

    Замените это: $1$2

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

    Создал тестовый файл, чтобы попробовать это, но регулярное выражение не работало надежно, чтобы выполнить работу. Не могли бы вы привести пример, который не помог, чтобы я мог улучшить свой ответ?

    Никто не работал для меня.

    Создал тестовый файл, чтобы попробовать это, но регулярное выражение не работало надежно, чтобы выполнить работу. Для всех моих данных, это работало отлично. Я забыл, каково было мое решение. Добавьте больше деталей, где это не удалось, чтобы другие люди могли улучшить это регулярное выражение. Я создал файл, чтобы в каждой строке было целое число от 0 до 999, в случайном порядке, иногда с дубликатами. Он не удалял большинство дубликатов и не удалял дубликаты, которые не были последовательными. Пожалуйста, предоставьте 2 примера для работающих и для неработающих. Это поможет кому-то.

    Может быть, есть другой плагин, который содержит необходимые функции. Кроме этого, единственный способ сделать это в Notepad ++ - это использовать какое-то специальное регулярное выражение для сопоставления и затем заменить ( Ctrl + F → Заменить вкладку).

    Хотя есть много функций, доступных через пункт меню Edit (обрезка, удаление пустых строк, сортировка, преобразование EOL), «уникальная» операция недоступна.

    Читайте также: