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”
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)
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.
Po ustawieniu kursora w pierwszym wierszu kliknij opcję „Rozpocznij nagrywanie”
Wpisz End, 1,↓
Kliknij „Zatrzymaj nagrywanie”
Kliknij „Uruchom makro wiele razy ...”
Wybierz „Uruchom do końca pliku” i kliknij Uruchom
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.
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ć „” „”.
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.
:%s/$/1/
. Och, czekaj, to Vim . ;-) (który jest również dostępny dla systemu Windows.):g/$/norm A1
. Lub bardziej złożony, ale bardziej fantazyjnygg$<C-v>G$A1<esc>
. Lub nawet co prawda wstrętneggqqqqqA1<esc>j@qq@q
. Jest więcej niż jeden sposób: POdpowiedzi:
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”
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
\n
zamiast\r\n
EOL dla Unix / OS X („Znajdź, co to jest\n
”, „Zamień na” to1\n
)Użyj
\r
zamiast\r\n
EOL dla Mac OS (do wersji 9) („Znajdź, co to jest\r
”, „Zamień na” to1\r
)Dalsza lektura
źródło
\n
lub\r
zamiast tego (odpowiednio EOL dla Unixa i Maca).\n
=>1\n
lub\r
=>1\r
. Robię takie rzeczy częściej z Extended zamiast Regex osobiście.\r
dotyczy tylko nieistniejącego Mac OS. Nie OS X, który używa\n
.Inną opcją jest funkcja nagrywania i odtwarzania.
Zrzuty ekranu
Wpisz End, 1,↓
źródło
Zaktualizowana odpowiedź:
Naciśnij Ctrl+, Haby otworzyć okno dialogowe Zamień.
W trybie wyszukiwania zaznacz opcję Wyrażenie regularne.
Find what:
$Replace with:
1I 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
,$0
będąc znalezionym wyrażeniem i dopisując1
do niego.źródło
$
i zamień =1
jest wystarczające.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.
źródło
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ć „” „”.
źródło
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
,\t
lub 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.
\r\n
dla Windowsa\r
dla starszych wersji MacOS (9 lub starszych)\n
dla Uniksa lub nowszego MacOS (OS X lub nowszy)1\r\n
dla Windowsa1\r
dla starszych wersji MacOS (9 lub starszych)1\n
dla Uniksa lub nowszego MacOS (OS X lub nowszy)źródło
\n
przypadku Uniksa i\r
starszej wersji MacOS? Pierwszy pocisk z Wikipedii: en.wikipedia.org/wiki/Newline#Representations