Как убрать каждую нечетную строку в Notepad ++?

29

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

Apple
Monkey
Orange
Lion
fruit
animal

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

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

Ответы:

23

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

  • Откройте диалог замены ( Ctrl+ H)
  • Выберите «Регулярное выражение»
  • Найти то, что: .+\r\n(.+(\r\n|$))
  • Заменить:
    $1
  • Нажмите «Заменить все»

Заметки:

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

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

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

Объяснение:

.+      : 1 or more any character but newline
\R      : any kind of linebreak (ie. \r, \n, \r\n)
(       : start group 1
  .+    : 1 or more any character but newline
)       : end group 1
  • Проверьте регулярное выражение
  • НЕ ПРОВЕРИТЬ . matches newline

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

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

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

UserF40
источник
1

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

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

Арт Гертнер
источник
Мне кажется, что это удалить четные строки (2,4,6 ...), а не нечетные.
Матэ Юхас,
1
Это правильно. Однако удалить четные строки проще, и проблему можно решить, добавив пустую строку в начале файла
Art
@ArtGertner должен быть заменен \ r \ n. + \ R \ n на \ r \ n
chingNotCHing
@chingNotCHing, хороший! Я обновил свой ответ
Арт Гертнер,
@ArtGertner Как вы указали, он работает только для четных линий. Но для большого набора данных это не редактирование для первого набора данных, скажем, с 1-15-й строки.
Nithin N