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

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


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


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.


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.


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ć „” „”.


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”

„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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.