Як додати номер в кінці кожного рядка в Notepad ++?


35

У мене є 23000 рядків, і мені потрібно додати номер 1 в кінці кожного рядка.

Як це зробити?

Саме зараз:

[line1]TEXT
[line2]TEXT

Що я хотів би:

[line1]TEXT1
[line2]TEXT1

2
Більш цікавим; як би призначити послідовні числа послідовним лініям? :-)
Carl Witthoft

1
@CarlWitthoft Змістіть рядки з пакетом TextFX (TextFx & gt; Інструменти TextFx & gt; Вставити рядкові номери), а потім перемістіть номери рядків до EOL за допомогою регулярного виразу.
DavidPostill

2
Якщо між двома рядками тексту є порожній рядок, чи повинна ця лінія також отримати 1?
Nzall

4
:%s/$/1/. Ой чекайте, ось Vim . ;-) (Котрий є також доступні для Windows.)
DevSolar

1
Альтернативно, @DevSolar :g/$/norm A1. Або більш складний, але цікавий gg$<C-v>G$A1<esc>. Або навіть відверто неприємний ggqqqqqA1<esc>j@qq@q. Більш ніж один спосіб зробити це: P
Doorknob

Відповіді:


27

Як додати номер в кінці кожного рядка в Notepad ++?

  • Меню "Пошук" & gt; "Замінити" (або Ctrl + H )

  • Встановіть "Знайти що" \r\n

  • Встановіть "Замінити на" на 1\r\n

  • Увімкнути "регулярний вираз" або "розширений"

    Примітка - "Регулярний вираз" - розширений "Розширений", тому в даному випадку не має значення, який ви використовуєте.

  • Натисніть "Замінити все"

Enter image description here

Примітки:

  • Вищевикладене передбачає, що ви редагуєте текстовий файл з Windows EOL, \r\n.

  • Якщо ви використовуєте файли з різними EOL, ви можете конвертувати їх у Windows EOLs за допомогою меню "Редагувати" & gt; "EOL Conversion".

  • Якщо ви не працюєте з Windows EOL, і не бажаєте конвертувати їх, використовуйте наступне:

    • Використовуйте \n замість \r\n для Unix / OS X EOL ("Знайти що") \n, "Замінити на" є 1\n )

    • Використовуйте \r замість \r\n для Mac OS (до версії 9) EOLs ("Знайти що") \r, "Замінити на" є 1\r )


Подальше читання


Це працює тільки, якщо роздільник рядків є вікнами, \ t
Zaheylu

4
Так, але програма Notepad ++ - програма WIndows ...;)
DavidPostill

5
Ой, ти маєш рацію ... :) Тим не менш, текстовий файл може мати інше кодування закінчення рядків;)
Zaheylu

5
Якщо ви не працюєте з вікнами EOL, немає ніяких підстав "конвертувати" їх ... просто використовуйте \n або \r замість цього (Unix і Mac EOLs відповідно). \n = & gt; 1\n або \r = & gt; 1\r. Я роблю це свого роду речі частіше з Extended замість Regex особисто.
WernerCD

2
@WernerCD Слід зазначити, що єдиний \r застосовується лише до неіснуючої Mac OS. Не OS X, який використовує \n.
Bob

18

Іншим варіантом є функція запису та відтворення.

  1. За допомогою курсору на першому рядку натисніть "Почати запис"
  2. Тип Кінець , 1 ,
  3. Натисніть "Зупинити запис"
  4. Натисніть "Запустити кілька разів макросу ..."
  5. Виберіть "Запустити до кінця файлу" та натисніть "Запустити"
  6. Робота виконана

Скріншоти

record and playback

Тип Кінець , 1 ,

Click on stop

Run Macro

enter image description here

Done


8
Макроси Notepad ++ ніколи не отримують достатньої любові.
armani

15

Оновлений відповідь:

Хіт Ctrl + H для відкриття діалогового вікна Замінити.

У режимі пошуку встановіть прапорець Регулярний вираз.

Find what: $

Replace with: 1

І вдарив Replace all


Оригінальний відповідь

Хіт Ctrl + H для відкриття діалогового вікна Замінити.

У режимі пошуку поставте галочку Regular Expression.

Знайти що: ^.*$

Замінити ($0)1

І вдарив Replace all

Пояснення

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

Ми замінюємо цей вираз на ($0)1, $0 будучи знайденим виразом і додаючи a 1 до неї.


2
Знайти = $ і замінити = 1 достатньо.
Salman A

8

Або зробіть це, як великі хлопці :).

Виберіть останню колонку за допомогою Shift + Alt = & gt; права клавіша (один раз) = & gt; клавішу вниз (натисніть до останнього рядка).

Напишіть, що хочете. Він з'явиться на всіх рядках одночасно.


Я збирався сказати це також .. чому весь складний reg expression? це відповідає на питання прекрасно .. і чому вниз голосування? тому що хтось просто не розумів, що це правильний відповідь? O.o
Ditto

1
Це не може бути практично для 23000 рядків (занадто повільно або іншим чином (проблеми з пам'яттю через Шлемієльські алгоритми художника ?)). Ви насправді спробували на 23000 лініях?
Peter Mortensen

2
@PeterMortensen Жахливо повільно, але використання пам'яті - це нормально (5 Мб => 25 МБ). Більша проблема полягає в тому, що вона не справляється з різними довжинами ліній.
Bob

@Ditto Я не заявляю, що я середній користувач, але це здається значно менш інтуїтивним, ніж звичайні вирази. Потім знову, xkcd.com/1171
David Z

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

1

Якщо це однаково довгі струни, то можна утримувати Alt Натисніть і перетягніть, щоб заблокувати вибір і мати можливість писати на декількох рядках одночасно. Якщо вони не однакові довгі, але не розділені пробілами, ви не можете виконати ту ж саму процедуру, а потім замінити "" на "".


3
Я іноді користуюся цією функцією, але перетягуючи за 23000 рядків ... Не так вже й весело :)
Denham Coote

1

Розширений режим.

Я хотів би додати трохи інший підхід, який не згадується в інших відповідях: Extended Mode.

За щось на зразок цього - де все, що вас цікавить, є \r, \n, \t або інші, включені в цей невеликий список (хоча ця сторінка виглядає як "датована", тому не впевнена на 100% в її правдивості) немає підстав для повної регулярного виразу.

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

Extended

  1. Меню "Пошук" & gt; "Замінити" (або 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. Натисніть "Замінити все"

"Регулярний вираз" є надмноженням "розширеного", тому в даному випадку не має значення, який ви використовуєте.
DavidPostill

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