Jak usunąć każdą nieparzystą linię w Notepad ++?


29

Próbuję edytować dokument zawierający 20000 wierszy. Muszę usunąć każdą nieparzystą linię, na przykład:

Apple
Monkey
Orange
Lion
fruit
animal

Jak mogę usunąć znaki każdego nieparzystego wiersza w dokumencie?


co rozumiesz przez linię nieparzystą? Czy chcesz usunąć nieparzyste (niechciane) słowo z całego dokumentu?
antzshrek,

4
Każde nieparzyste linie, takie jak 1,3,5,7,9,11,13,13 ... itd.
Nithin N

1
Spróbuj zastąpić nową linią (regexp): [\ n. + \ N]
Art Gertner

@ ArtGertner Próbowałem z wyrażeniem, że nie działa.
Nithin N

1
Nagrałbym głupie makro: strzałka w dół, strzałka w dół, del.
chingNotCHing

Odpowiedzi:


23

Możesz to zrobić, znajdując i zamieniając:

  • Otwórz okno dialogowe zamiany ( Ctrl+ H)
  • Wybierz „Wyrażenie regularne”
  • Znajdź co: .+\r\n(.+(\r\n|$))
  • Zamienić:
    $1
  • Naciśnij „Zamień wszystko”

Uwagi:

  • W zależności od systemu operacyjnego musisz użyć \r(stary Mac), \n(Unix, OS X) lub \r\n(Windows), aby dopasować koniec linii, lub po prostu użyć, \Rktóry powinien działać wszędzie (dzięki za @Aurel Bílý)
  • \n|$ jest potrzebny, aby uzyskać poprawny wynik nawet na końcu pliku
  • Domyślnie Notepad ++ zastępuje rzeczywistą pozycję kursora na końcu pliku. Umieść kursor na początku pliku.
    • (Możesz również zaznaczyć „zawijaj”, ale w takim przypadku najpierw usunie linię, w której znajduje się kursor, zamiast naprawdę szukać linii nieparzystej).

Wpisz opis zdjęcia tutaj


Prawie działa, ale nie edytuje pierwszego zestawu nieparzystych linii, powiedzmy od 1 do 15.
Nithin N

Zmień zrzut ekranu z większą przejrzystością tego okna zastępowania.
Biswapriyo

11
Należy pamiętać, że \rjako zakończenie linii jest bardzo rzadkie - rzeczywiście było używane w systemie Mac OS, ale w klasycznych wersjach wcześniejszych niż OS-X. W OS X i później zakończenia linii są \n, jak każdy rozsądny Unix. \RJest także lepszy do dopasowania dowolnego zakończenia linii.
Aurel Bílý

@ AurelBílý To prawda, jednak Notepad ++ działa tylko w systemie Windows, więc przenośność tutaj nie stanowi większego problemu.
Rob

18
  • Ctrl+H
  • Znajdź co: .+\R(.+)
  • Zamienić: $1
  • Replace all

Wyjaśnienie:

.+      : 1 or more any character but newline
\R      : any kind of linebreak (ie. \r, \n, \r\n)
(       : start group 1
  .+    : 1 or more any character but newline
)       : end group 1
  • Sprawdź wyrażenie regularne
  • NIE SPRAWDŹ . matches newline

Wynik dla podanego przykładu:

Monkey
Lion
animal

@NithinN: Należy pamiętać, że zaakceptowana odpowiedź nie działa z plikami linux (tj. Linebreak \n)
Toto

7
  1. Otwórz plik i umieść kursor tekstowy na początku pierwszego wiersza.
  2. Menu → MakroRozpocznij nagrywanie
  3. Naciśnij Endklawisz na klawiaturze
  4. Shift+ Homewięcbackspace
  5. Down
  6. Backspace
  7. Down
  8. Menu → MakroZatrzymaj nagrywanie
  9. Menu → MakroUruchom makro wiele razy → Zaznacz Uruchom do końca pliku
  10. Kliknij Run

Zasadniczo wykonaj akcję raz, aby usunąć nieparzystą linię, a następnie poproś program, aby powtórzył akcję do końca pliku. Można to wykorzystać do rozwiązania wielu problemów!


1

Właśnie sprawdziłem na komputerze mojego kolegi, który faktycznie używa Notepad ++. Spróbuj tego:

Wpisz opis zdjęcia tutaj


Wydaje mi się, że to usuwa parzyste linie (2,4,6 ...), a nie nieparzyste.
Máté Juhász

1
To jest poprawne. Jednak usuwanie parzystych linii jest łatwiejsze, a problem można rozwiązać, dodając pustą linię na początku pliku
Art Gertner

@ ArtGertner powinien być \ r \ n. + \ R \ n zastąpiony przez \ r \ n
chingNotCHing

@chingNotCHing, dobry! Zaktualizowałem swoją odpowiedź
Art Gertner,

@ArtGertner Jak już wspomniałeś, działa tylko dla linii parzystych. Ale dla dużego zestawu danych nie jest edytowany dla pierwszego zestawu danych, powiedzmy, z 1-15 linii.
Nithin N
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.