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)


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


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.


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


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.

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


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

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.