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


37

У меня есть 23 000 строк, и мне нужно добавить номер 1в конце каждой строки.

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

Прямо сейчас:

[line1]TEXT
[line2]TEXT

Что бы я хотел:

[line1]TEXT1
[line2]TEXT1

2
Интереснее; Как бы вы назначили последовательные номера последовательным линиям? :-)
Карл Виттхофт

1
@CarlWitthoft Пронумеруйте строки с помощью пакета TextFX (TextFx> Инструменты TextFx> Вставить номера строк), а затем переместите номера строк в EOL с помощью регулярного выражения.
DavidPostill

2
Если между двумя строками текста есть пустая строка, должна ли эта строка также получить 1?
Nzall

4
:%s/$/1/, Ой, подождите, это Вим . ;-) (Что это доступно для Windows , а также.)
DevSolar

1
@DevSolar В качестве альтернативы :g/$/norm A1. Или более сложный, но причудливый gg$<C-v>G$A1<esc>. Или даже по общему признанию противный ggqqqqqA1<esc>j@qq@q. Более чем один способ сделать это: P
дверная ручка

Ответы:


28

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

  • Меню «Поиск»> «Заменить» (или Ctrl+ H)

  • Установите «Найти что» \r\n

  • Установите «Заменить» на 1\r\n

  • Включить «Регулярное выражение» или «Расширенный»

    Примечание. «Регулярное выражение» - это расширенный набор «Расширенных», поэтому в данном конкретном случае не имеет значения, какое из них вы используете.

  • Нажмите «Заменить все»

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

Заметки:

  • Выше предполагает , что вы редактируете текстовый файл с EOL в Windows, \r\n.

  • Если вы используете файлы с разными EOL, вы можете преобразовать их в Windows EOL, используя меню «Правка»> «Преобразование EOL».

  • Если вы не работаете с Windows EOL и не хотите преобразовывать их, используйте следующее:

    • Используйте \nвместо \r\nEOL для Unix / OS X («Найти что» \n, «Заменить на» это 1\n)

    • Используйте \rвместо \r\nMac OS (до версии 9) EOLs («Найти что» \r, «Заменить на» это 1\r)


дальнейшее чтение


Это работает только в том случае, если разделителем строк является windows, \ r \ n.
Захейлу

4
Да, но Notepad ++ - это программа для Windows ...;)
DavidPostill

5
О, вы правы ... :) Тем не менее, текстовый файл может иметь другое окончание строки;)
Zaheylu

5
Если вы не работаете с Windows EOL, нет смысла «конвертировать» их ... просто используйте \nили \rвместо этого (Unix и Mac EOL соответственно). \n=> 1\nили \r=> 1\r. Я делаю такие вещи чаще с Extended вместо Regex лично.
WernerCD

2
@WernerCD Следует отметить, что один \rотносится только к несуществующей Mac OS. Не OS X, который использует \n.
Боб

19

Другим вариантом является функция записи и воспроизведения.

  1. Поместив курсор на первую строку, нажмите «Начать запись»
  2. Введите End, 1,
  3. Нажмите «Остановить запись»
  4. Нажмите «Выполнить макрос несколько раз ...»
  5. Выберите «Выполнить до конца файла» и нажмите «Выполнить»
  6. Дело сделано

Скриншоты

запись и воспроизведение

Введите End, 1,

Нажмите на стоп

Запустить макрос

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

Выполнено


9
Макросы Notepad ++ никогда не получают достаточно любви.
Армани

15

Обновленный ответ:

Нажмите Ctrl+, Hчтобы открыть диалог замены.

В режиме поиска установите флажок Регулярное выражение.

Find what: $

Replace with: 1

И ударил Replace all


Оригинальный ответ

Нажмите Ctrl+, Hчтобы открыть диалог замены.

В режиме поиска отметьте галочкой Regular Expression.

Найти то, что: ^.*$

Заменить ($0)1

И ударил Replace all

объяснение

Вы ищете регулярное выражение ^.*$, которое, по сути, является каждой строкой. ^отмечает начало строки, .*включает любой символ любое количество раз и $отмечает конец строки. Таким образом, это регулярное выражение находит весь контент в каждой строке.

Мы заменяем это выражение на ($0)1, $0являясь найденным выражением, и добавляя 1к нему выражение .


2
Найти = $и заменить = 1достаточно.
Салман А

8

Или делай так, как делают большие мальчики :).

Выберите последний столбец, используя Shift + Alt => правую клавишу (один раз) => клавишу «вниз» (нажимайте до последней строки).

Введите все, что вы хотите. Он появится сразу на всех строках.


Я собирался сказать это также .. почему все сложные выражения reg? это отвечает на вопрос отлично .. и почему голосование против? потому что кто-то просто не понял, что это правильный ответ? Оо
То же

2
Это может быть непрактичным для 23 000 строк (слишком медленно или иначе (проблемы с памятью из-за алгоритмов художника Шлемеля ?)). Вы на самом деле пробовали это на 23000 строк?
Питер Мортенсен

2
@PeterMortensen Ужасно медленно, но использование памяти нормально (5 МБ => 25 МБ). Большая проблема заключается в том, что он не справляется с разной длиной строки.
Боб

@ Так же я не претендую на то, чтобы быть обычным пользователем, но это кажется значительно менее интуитивным, чем регулярные выражения. Тогда снова, xkcd.com/1171
Дэвид Z

1
Это не очень хороший ответ, сначала вам нужно найти самую длинную строку, затем вам нужно будет нажимать до последней строки, во время тестирования этого метода мне стало скучно после пары десятков строк, я не мог сидеть там 20k + линий
Aequitas

1

Если это одинаково длинные строки, то вы можете удерживать, Altщелкать и перетаскивать, чтобы выбрать блок и иметь возможность писать в несколько строк одновременно. Если они не одинаковы по длине, но не разделены пробелами, вы не можете выполнить ту же процедуру, а затем заменить «» на «».


3
Я иногда использую эту функцию, но тащу за 23 000 строк ... Не так уж весело :)
Denham Coote

1

Расширенный режим.

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

Для чего - то вроде этого - где все вы обеспокоены являются \r, \n, \tили другими включенным в этом небольшом списке (хотя , что страница выглядит как «от», так что не 100% уверены , что на его правдивости) нет никакой причины , чтобы пойти на полную мощности регулярного выражение.

Я использую расширенный режим Notepad ++ «часто», чтобы массировать макеты файлов - в основном, удаляя несколько пустых строк, лишние пробелы и другие разные странности.

расширенный

  1. Меню «Поиск»> «Заменить» (или Ctrl+ H)
  2. Определите, какие окончания строк вы хотите
  3. В «Найти что» положить:
    • \r\n для Windows
    • \r для старых версий MacOS (9 или старше)
    • \n для Unix или новее MacOS (OS X или новее)
  4. Установите «Заменить» на
    • 1\r\n для Windows
    • 1\r для старых версий MacOS (9 или старше)
    • 1\n для Unix или новее MacOS (OS X или новее)
  5. Включить «Расширенный»
  6. Нажмите «Заменить все»

«Регулярное выражение» - это расширенный набор «расширенных», поэтому в данном конкретном случае не имеет значения, какое из них вы используете.
ДэвидПостилл

Разве это не должно быть \nдля Unix и \rдля более старой версии MacOS? Первая пуля из Википедии: en.wikipedia.org/wiki/Newline#Representations
nhahtdh
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.