Zmień EOL dla wielu plików za jednym razem

101

Czy istnieje sposób w Notepad ++ (lub nawet z innym narzędziem), aby automatycznie zmienić linię kończącą się na wielu plikach za jednym razem ?

tj. przekonwertuj kombinację plików Windows EOL ( CRLF) i UNIX EOL ( LF) na wszystkie Windows EOL ( CRLF)

fduff
źródło
1
W przypadku, gdy Notatnik ++ nie jest stanowczym wymogiem, informacje tutaj mogą być istotne: stackoverflow.com/questions/3110031/ ...
reuben

Odpowiedzi:

103

Okno dialogowe Zamień może obsługiwać znaki rozszerzone, takie jak EOL. Po prostu zmień "Tryb wyszukiwania" na "Rozszerzony" i możesz pracować z EOL (\ r \ n w Windows lub \ n w Uniksie), zakładkami (\ t) itp.

Możesz również użyć karty Znajdź w plikach w oknie dialogowym, aby dokonać zamiany w wielu plikach.

Zrzut ekranu

McGarnagle
źródło
14
Zauważ, że to rozwiązanie nie zadziała, jeśli wszystkie twoje pliki nie są już w stylu uniksowym. Od wymianie \nz \r\nrównież konwertować \r\ndo \r\r\n.
Kirk Woll,
-1 bez zmiany Edycja> Konwersja EOL (patrz Dos \ Windows na pasku stanu zrzutu ekranu), naciśnięcie klawisza ENTER spowoduje wstawienie niewłaściwego EOL - a mieszanie EOL jest nawet gorsze niż trzymanie się któregokolwiek ze standardów
kwiecień
43
zamień \ n na \ r \ n. następnie zamień \ r \ r \ n na \ r \ n. voila!
dev_row,
2
Dlaczego przykładowy zrzut ekranu pojawia się \tw Find what? Karty nie mają nic wspólnego ze zmianą końcówek linii, prawda?
trejder
1
wielki ... to działa idealnie w edytorze Notepad ++ ... oszczędza ogromny wysiłek, który mamy zamiar wydać przez ręcznych zmian
Aniruddhy
91

Mam Notepad ++ 6.1.2.
W menu „Edycja” masz „konwersję EOL”, która robi dokładnie to, czego potrzebujesz.

Marco
źródło
24
który działa na podstawie pliku, nie można go zastosować do całego zestawu plików.
fduff
10
Czy przeczytałeś tytuł pytania? Czy widziałeś część „zmień EOL dla wielu plików ”?
Sk8erPeter
2
Aby zrobić to w więcej niż jednym pliku, po kolei, otworzyłbyś więcej niż jeden plik. Jak powiedział, „za jednym zamachem” pierwotnie nie było.
gparent
7
W rzeczywistości odpowiedź była dla mnie bardzo przydatna, ponieważ musiałem zmieniać EOL w pojedynczych plikach, a nie wiedziałem jak.
DiegoDD
5
Przydatna odpowiedź, ponieważ pojawia się jako pierwsza w Google
Matthew Lock,
69

Użyj funkcji „Znajdź w plikach” (Ctrl + Shift + F). Zmień tryb wyszukiwania w lewym dolnym rogu na „Wyrażenie regularne”.

W polu „Znajdź” użyj tego wzorca:

(?<!\r)\n

Zamienić:

\r\n

Wybierz katalog i określ filtry typów plików. Jeśli chcesz, zaznacz „We wszystkich podfolderach”. Kliknij „Zamień w plikach”.

To powoduje zamianę wszystkich znaków nowego wiersza (\ n), które nie są obecnie poprzedzone znakiem powrotu karetki (\ r), na \ r \ n. Więc nie będzie pasował do zakończeń linii, które są już w stylu Windows.

wprowadź opis obrazu tutaj

Sean
źródło
1
Czy mógłbyś wyjaśnić, co to (?<!\r)\nznaczy, zwłaszcza pierwsza ?<!część, dzięki!
user1032613
2
to (?<! )jest negatywne spojrzenie w tył. Oznacza dopasowanie, jeśli nie ma przedrostka. W tym przypadku sprawdza \ri będzie pasować tylko wtedy, gdy \nnie ma \rprzed sobą.
rtpHarry
Tak. Zgadzam się z rtpHarry. Oto część mojej odpowiedzi: „wszelkie znaki nowej linii (\ n), które nie są obecnie poprzedzone znakiem powrotu karetki (\ r)”.
Sean
1
najbardziej wyszukane rozwiązanie!
Philipp Michalski,
4
Z technicznego punktu widzenia jest to najbardziej precyzyjna i kompletna odpowiedź na tej stronie.
dotNET
8

Użyj zamień wszystko na wyrażenie regularne

(\r?\n)|(\r\n?)

do

\r\n

To dopasuje każdy możliwy wzorzec zakończenia linii (pojedynczy \ r, \ n lub \ r \ n) z powrotem do \ r \ n (Windows).

Aby operować na wielu plikach:

  • Użyj opcji „Zamień wszystko we wszystkich otwartych dokumentach” w zakładce „Zamień”. Najpierw musisz przeciągnąć i upuścić wszystkie pliki do Notepad ++. Dobrze, że będziesz mieć kontrolę nad tym, na którym pliku będziesz operować, ale może to być powolne, jeśli istnieje kilkaset lub tysiące plików.
  • „Zastąp w plikach” w zakładce „Znajdź w plikach” według wybranego filtru plików, np. * .Cpp * .cs w jednym określonym katalogu.
Wappenull
źródło
Najlepsza odpowiedź, ponieważ działa ze wszystkimi smakami zakończeń linii. Dzięki!
jojo,
To najlepsza i najłatwiejsza odpowiedź!
user1447420
5

Jedyne DZIAŁAJĄCE rozwiązanie, które znalazłem dla wielu plików / folderów, po 1 godzinie wyszukiwania w Google to:

  • zainstaluj wersję próbną PyCham ,
  • otwórz i wybierz folder / foldery projektu i wykonaj zrzut ekranu

wprowadź opis obrazu tutaj

Cristian Muscalu
źródło
Działa również w IntelliJ IDEA Community Edition, która jest bezpłatna i nie wymaga wersji próbnej. IntelliJ IDEA .
CodeMonkey
1

Znalazłem to rozwiązanie w tej dyskusji :

Możesz także ustawić domyślny EOL w notatniku ++ poprzez "Ustawienia" -> "Preferencje" -> "Nowy dokument / Katalog domyślny", a następnie wybierz "Unix / OSX" w polu Format.

Uwaga: zawsze można użyć opcji poza pasmem za pomocą wiersza poleceń:

unix2dos *.cmd
dos2unix *.sh
R2AD
źródło