Jak dodać liczbę na końcu każdej linii w Notepad ++?

37

Mam 23 000 linii i muszę dodać numer 1na końcu każdej linii.

W jaki sposób mogę to zrobić?

Teraz:

[line1]TEXT
[line2]TEXT

Czego bym chciał:

[line1]TEXT1
[line2]TEXT1
falsky
źródło
2
Bardziej interesujące; jak przypisałbyś kolejne numery do kolejnych wierszy? :-)
Carl Witthoft,
1
@CarlWitthoft Numeruj linie za pomocą pakietu TextFX (TextFx> Narzędzia TextFx> Wstaw numery linii), a następnie przenieś numery linii do EOL za pomocą wyrażenia regularnego.
DavidPostill
2
Jeśli między 2 wierszami tekstu jest pusta linia, czy ta linia powinna również otrzymać 1?
Nzall,
4
:%s/$/1/. Och, czekaj, to Vim . ;-) (który jest również dostępny dla systemu Windows.)
DevSolar
1
@DevSolar Ewentualnie :g/$/norm A1. Lub bardziej złożony, ale bardziej fantazyjny gg$<C-v>G$A1<esc>. Lub nawet co prawda wstrętne ggqqqqqA1<esc>j@qq@q. Jest więcej niż jeden sposób: P
Klamka

Odpowiedzi:

28

Jak dodać liczbę na końcu każdej linii w Notepad ++?

  • Menu „Szukaj”> „Zamień” (lub Ctrl+ H)

  • Ustaw „Znajdź co” na \r\n

  • Ustaw „Zamień na” na 1\r\n

  • Włącz „Wyrażenie regularne” lub „Rozszerzone”

    Uwaga - „Wyrażenie regularne” jest nadzbiorem „Rozszerzonego”, więc w tym konkretnym przypadku nie ma znaczenia, którego używasz.

  • Kliknij „Zamień wszystko”

Wpisz opis zdjęcia tutaj

Uwagi:

  • Powyższe zakłada, że edytujesz plik tekstowy z EOLs Windows \r\n.

  • Jeśli używasz plików z różnymi EOL, możesz je przekonwertować na Windows EOL za pomocą Menu „Edycja”> „Konwersja EOL”.

  • Jeśli nie pracujesz z Windows EOL i nie chcesz ich konwertować, użyj następujących poleceń:

    • Użyj \nzamiast \r\nEOL dla Unix / OS X („Znajdź, co to jest \n”, „Zamień na” to 1\n)

    • Użyj \rzamiast \r\nEOL dla Mac OS (do wersji 9) („Znajdź, co to jest \r”, „Zamień na” to 1\r)


Dalsza lektura

DavidPostill
źródło
Działa to tylko wtedy, gdy ogranicznikiem linii jest windows, \ r \ n.
Zaheylu
4
Tak, ale Notepad ++ to program
Windows
5
Och, masz rację ... :) Mimo to plik tekstowy może mieć inne kodowanie zakończone linią;)
Zaheylu
5
Jeśli nie pracujesz z Windows EOL, nie ma powodu, aby je konwertować ... po prostu użyj \nlub \rzamiast tego (odpowiednio EOL dla Unixa i Maca). \n=> 1\nlub \r=> 1\r. Robię takie rzeczy częściej z Extended zamiast Regex osobiście.
WernerCD
2
@WernerCD Należy zauważyć, że singiel \rdotyczy tylko nieistniejącego Mac OS. Nie OS X, który używa \n.
Bob
19

Inną opcją jest funkcja nagrywania i odtwarzania.

  1. Po ustawieniu kursora w pierwszym wierszu kliknij opcję „Rozpocznij nagrywanie”
  2. Wpisz End, 1,
  3. Kliknij „Zatrzymaj nagrywanie”
  4. Kliknij „Uruchom makro wiele razy ...”
  5. Wybierz „Uruchom do końca pliku” i kliknij Uruchom
  6. Zadanie wykonane

Zrzuty ekranu

nagrywanie i odtwarzanie

Wpisz End, 1,

Kliknij stop

Uruchom makro

wprowadź opis zdjęcia tutaj

Gotowy

Denham Coote
źródło
9
Makra Notepad ++ nigdy nie mają wystarczającej ilości miłości.
armani
15

Zaktualizowana odpowiedź:

Naciśnij Ctrl+, Haby otworzyć okno dialogowe Zamień.

W trybie wyszukiwania zaznacz opcję Wyrażenie regularne.

Find what: $

Replace with: 1

I uderzył Replace all


Oryginalna odpowiedź

Naciśnij Ctrl+, Haby otworzyć okno dialogowe Zamień.

W trybie wyszukiwania zaznacz Regular Expression.

Znajdź co: ^.*$

Zamienić ($0)1

I uderzył Replace all

Wyjaśnienie

Poszukujesz wyrażenia regularnego ^.*$, które jest zasadniczo każdą linią. ^oznacza początek linii, .*zawiera dowolny znak dowolną liczbę razy i $oznacza koniec linii. Zatem to wyrażenie regularne znajduje całą treść w każdym wierszu.

Zastępujemy to wyrażenie ($0)1, $0będąc znalezionym wyrażeniem i dopisując 1do niego.

Zaheylu
źródło
2
Znajdź = $i zamień = 1jest wystarczające.
Salman,
8

Lub zrób to tak, jak robią to duzi chłopcy :).

Wybierz ostatnią kolumnę za pomocą Shift + Alt => prawy klawisz (raz) => klawisz strzałki w dół (naciskaj do ostatniej linii).

Wpisz co chcesz. Pojawi się na wszystkich liniach jednocześnie.

banavalikar
źródło
Chciałem to również powiedzieć ... dlaczego cała ta złożona ekspresja regu? to doskonale odpowiada na pytanie… i dlaczego głosowanie w dół? bo ktoś po prostu nie rozumiał, że to poprawna odpowiedź? Oo
Ditto,
2
Może to nie być praktyczne w przypadku 23 000 wierszy (zbyt wolno lub w inny sposób (problemy z pamięcią z powodu algorytmów Shlemiela malarza ?). Czy rzeczywiście wypróbowałeś go na 23 000 linii?
Peter Mortensen
2
@PeterMortensen Przerażająco wolne, ale użycie pamięci jest w porządku (5 MB => 25 MB). Większy problem polega na tym, że nie radzi sobie dobrze z różną długością linii.
Bob
@Ditto Nie twierdzę, że jestem przeciętnym użytkownikiem, ale wydaje się to znacznie mniej intuicyjne niż wyrażenia regularne. Z drugiej strony, xkcd.com/1171
David Z
1
To nie jest bardzo dobra odpowiedź, najpierw trzeba znaleźć najdłuższą linię, potem trzeba nacisnąć w dół do ostatniej linii, podczas testowania tej metody nudzę się po kilkudziesięciu liniach, nie mogłem tam usiąść 20k + linii
Aequitas
1

Jeśli są to równie długie ciągi, możesz przytrzymać, Altkliknąć i przeciągnąć, aby zablokować zaznaczenie i móc pisać na kilku wierszach jednocześnie. Jeśli nie są one jednakowo długie, ale nie są oddzielone spacją, nie możesz wykonać tej samej procedury, a następnie zastąpić „” „”.

Viktor Mellgren
źródło
3
Czasami używam tej funkcji, ale przeciągam do 23 000 wierszy ... Nie jest tak fajnie :)
Denham Coote
1

Tryb rozszerzony.

Chciałem dodać nieco inne podejście, o którym nie wspominają inne odpowiedzi: Tryb rozszerzony.

Na coś takiego - gdzie wszystko, czego dotyczą są \r, \n, \tlub inne zawarte w tej małej listy (chociaż wygląd strony do „przestarzałe”, więc nie 100% pewny na jego prawdziwości) Nie ma powodu, aby przejść pełny regularne wyrażenie.

Używam trybu rozszerzonego Notepad ++ „często” do masowania układów plików - głównie koncentrując się wokół usuwania wielu pustych linii, dodatkowych białych znaków i innych dziwnych elementów.

Rozszerzony

  1. Menu „Szukaj”> „Zamień” (lub Ctrl+ H)
  2. Określ, które zakończenia linii chcesz
  3. W „Find What” wpisz:
    • \r\n dla Windowsa
    • \r dla starszych wersji MacOS (9 lub starszych)
    • \n dla Uniksa lub nowszego MacOS (OS X lub nowszy)
  4. Ustaw „Zamień na” na
    • 1\r\n dla Windowsa
    • 1\r dla starszych wersji MacOS (9 lub starszych)
    • 1\n dla Uniksa lub nowszego MacOS (OS X lub nowszy)
  5. Włącz „Rozszerzone”
  6. Kliknij „Zamień wszystko”
WernerCD
źródło
„Wyrażenie regularne” jest nadzbiorem „rozszerzonego”, więc w tym konkretnym przypadku nie ma znaczenia, którego używasz.
DavidPostill
Czy nie powinno tak być w \nprzypadku Uniksa i \rstarszej wersji MacOS? Pierwszy pocisk z Wikipedii: en.wikipedia.org/wiki/Newline#Representations
nhahtdh