Notepad ++ znajdź i zamień ciąg znaków na nowy wiersz

212

Rozważ scenariusz, w którym masz określony ciąg, który chcesz znaleźć i zastąpić. Chcesz zastąpić go nowym ciągiem zawierającym znak nowej linii (lub sekwencję znaków).

abc123 xyz456-blah
fsafd23 xyz456-green
89hjkf23 xyz456-red
afdsa23 xyz456-yellow
abaac123 xyz456-orange

W powyższym scenariuszu chciałbym znaleźć „ xyz” i zastąpić spację znakiem powrotu / nowego wiersza.

Wyniki wyglądałyby następująco:

abc123
xyz456-blah
fsafd23
xyz456-green
89hjkf23
xyz456-red
   ︙

itp...

Pytanie: Jak najłatwiej można to osiągnąć za pomocą Notepad ++? Czy są jakieś inne narzędzia, które możesz zasugerować, aby łatwo wykonać to polecenie?

p.campbell
źródło

Odpowiedzi:

279

Notepad ++ da sobie radę.

Szukana fraza:

 xyz
Zwróć uwagę na miejsce przed xyz.

Zamień ciąg:

\ r \ nxyz

Będziesz także musiał ustawić „Tryb wyszukiwania” na „Rozszerzony” (dolne lewe pole grupy w oknie dialogowym Zamień ), aby Notepad ++ honorował kody specjalne.


Niektóre tło: „\ r \ n” jest kodem ucieczki powrotu karetki, standardem dla nowych wierszy w systemie Windows. Systemy uniksowe używają po prostu \ n (nowa linia). Większość IDE, w tym Notepad ++, będzie rozumieć oba style i przedstawiać je za pomocą nowych linii, ale podstawowe narzędzia systemu Windows nie rozumieją \ n jako równoważnika \ r \ n, więc ten ostatni jest zwykle najbardziej odpowiedni, jeśli plik ma być używane w środowiskach Windows.

kaliban
źródło
2
\ r \ n = Składnia nowej linii Windows. Jednak dla wszystkiego innego niż zwykły stary notatnik zaakceptuje tylko \ n nowej linii (co jest również bardziej konwencjonalne).
Macha
3
Twoje zdanie „bardziej konwencjonalne” jest mylące. „\ r \ n” jest standardem w systemie Windows. Po prostu wielu edytorów i IDE rozpoznaje standardową linię Unix / Linux kończącą się „\ n” i odpowiednio wyświetla dokument. W „\ n” nie ma nic, co czyni go bardziej konwencjonalnym.
Brian Lacy,
Szczerze mówiąc, wersja Win / DOS ma dla mnie większy sens. „\ r” oznacza „powrót karetki lub„ powrót karetki / kursora na początek linii ””, a „\ n” oznacza „przesuń karetkę / kursor o jedną linię do przodu”. Oczywiście Unix pojawił się 20 lat wcześniej, więc sądzę, że w tym sensie to Microsoft złamał ten standard.
Brian Lacy,
7
to nie zadziała, chyba że ustawisz tryb wyszukiwania, jak podano w drugiej odpowiedzi: superuser.com/questions/34451/…
codeulike
7
Jeśli próbujesz zastąpić dosłowny ciąg „\ r \ n” faktycznym nowym wierszem, musiałem wykonać następujące czynności: ustaw tryb wyszukiwania na normalny, znajdź / zamień \ r \ n na ***. Następnie ustaw tryb wyszukiwania na Rozszerzony, znajdź / zamień *** na \ r \ n.
goku_da_master
61

W Notepad ++ jest to bardzo łatwe ...

  • Znajdź: xyz
  • Zamień na: \ n


  • Tryb wyszukiwania: rozszerzony (\ n, \ t itp.)

Sztuką jest ustawienie trybu wyszukiwania.

th3dude
źródło
1
Ta odpowiedź działała dla mnie, zaakceptowana nie. Ver 5.8.6
bdwakefield
Tak, tak samo tutaj przyjęta odpowiedź nie została określona przy użyciu trybu rozszerzonego.
Andy,
Dlaczego nie \r\n(zamiast \n)?
Peter Mortensen
5

Oszukuję trochę, gdy S & Ring znaki, których nie mogę wpisać bezpośrednio w polach tekstowych (np. Tabulatory i znaki nowej linii). Znajdź gdzieś w dokumencie, który ma już ten znak, a następnie skopiuj go i wklej w pole zastępowania.

Tak więc w swoim przykładzie zacznij od samego początku jednej linii, kliknij, przeciągnij na sam koniec poprzedniej linii, skopiuj ją i wklej w oknie dialogowym Zamień.

Macha
źródło
5

Upewnij się, że w oknie dialogowym „Zamień” w Trybie wyszukiwania wybrano „Rozszerzone”. Następnie wpisz w polu wyszukiwania wpisz „xyz” i zamień na „\ n”.

tj111
źródło
1
Dlaczego nie \r\n(zamiast \n)?
Peter Mortensen
2

W przypadku Notepad ++ zmień tryb wyszukiwania na Rozszerzony, a następnie w polu Zamień na użyj \ n .

dlux
źródło
1
Dlaczego nie \r\n(zamiast \n)?
Peter Mortensen