Niedawno wróciłem do systemu Windows z systemu Linux. Mam niektóre pliki z CRLF, niektóre z LF, a niektóre są mieszane. Czy istnieje narzędzie, które pomoże mi znaleźć wszystkie moje pliki dotknięte Uniksem i przekonwertować je na prawidłowe pliki zakończone CRLF?
Narzędzie musi działać w systemie Windows, a nie Linux. Już się przeprowadziłem Wolałbym nie instalować Cygwin, jeśli mogę tego uniknąć.
linux
windows
text-editing
newlines
file-conversion
Matthew Scouten
źródło
źródło
Odpowiedzi:
Możesz je przekonwertować za pomocą
unix2dos
narzędzia na platformie Linux. Istnieją równieżunix2dos
wersje dla systemu Windows .Jeśli masz zainstalowany Perl, możesz również użyć tego jednego linera:
źródło
Oto prosty i szybki sposób.
Przeciągnij i upuść plik tekstowy do Chrome (nie wiem o innych przeglądarkach), a następnie wytnij i wklej z powrotem do oryginalnego pliku :)
źródło
Ten, który uznałem za najlepszy do rekurencyjnego przeglądania folderów, zezwalając na filtry plików i pozwalając na proste wyszukiwanie „\ r \ n” i zastąpienie go tylko „\ n”, to Notepad ++ .
Notepad ++ to jeden z najlepszych darmowych programów typu open source do notatników dla systemu Windows. To jest bardzo proste i potężne. Poradził sobie z zakończeniem wyszukiwania / zamiany wiersza. Wykonawca sprawdza kilka plików .c i .h w naszym repozytorium z zakończeniami linii Linux \ r \ n, ale ponieważ większość ludzi ustandaryzowała narzędzia do kompilacji Windows / Eclipse, pliki nie będą budowane, dopóki końcówki linii nie zostaną przekonwertowane .
źródło
Edit -> EOL Conversion
menu, jeśli liczba plików do konwersji jest niewielka.Użyj szwajcarskiego noża do pilników .
Na przykład:
sfk addcr -dir . -file .txt -norec
zmienia końcówki LF na CR / LF dla Windows we wszystkich plikach .txt bieżącego katalogu, ale NIE w podkatalogach (bez rekurencji).
Ale ten program robi o wiele więcej niż tylko to.
źródło
-norec
ponieważ chcę, aby miała miejsce rekurencja, ale nie wydaje się, żeby tak byłoW Cygwin można konwertować pliki systemu Windows AKA „Unix” na „DOS” za pomocą dwóch wbudowanych narzędzi:
Konwertuj na format DOS CR / LF:
Konwertuj z powrotem do formatu Unix CR:
Plik pozostawia się na miejscu o tej samej nazwie.
Cieszyć się! Stóg
źródło
dos2unix
lubunix2dos
w przypadku, gdy nie można go znaleźć jako u2d lub d2u. Jest teżunix2mac
Wyrzucę tam to rozwiązanie. Git to zrobi. Zobacz ten post na ten temat
Teoretycznie możesz to zrobić, aby przekonwertować całe drzewo
Zmień
crlf
na,lf
jeśli chcesz iść w drugą stronę. UWAGA: jeszcze nie skończyłeś, czytaj dalejWpisz,
git status
aby zobaczyć, które pliki zostaną zmienione. Może być konieczne dodanie linii takich jakitp., aby
.gitattributes
uniknąć konwersji niektórych plików. Możesz także wyraźnie oznaczyć niektóre pliki jako tekstNastępnie po prostu powtórz te 2 wiersze po zakończeniu edycji
.gitattributes
Następnie użyj
git status
ponownie, aby zobaczyć, które pliki zostaną zmienione. Gdy masz pewność, że wszystkie pliki, których dotyczy problem, zostaną wyświetlone,git status
a następnie zatwierdźteraz sprawdź ponownie wszystkie pliki
Powinny mieć teraz dowolne pożądane zakończenia linii
** UWAGA: Jeśli już korzystałeś z git, pomiń pierwsze 3 polecenia git. Jeśli nie korzystałeś z git, możesz teraz usunąć
.gitattributes
plik i.git
folder.** Twórz kopie zapasowe plików:
git rm --cached -r
usuwa je wszystkie (chociaż teoretycznie znajdują się one w twoim repozytorium git (folderze .git), w taki sposób są przywracane przez ostatnie poleceniegit reset --hard
. Właśnie dlatego, że pliki są usuwane, prawdopodobnie najlepiej jest je wykonać w górę.źródło
Użyj edytora tekstu, który obsługuje oba zakończenia linii, takiego jak SciTE lub Notepad ++, jeśli nie musisz konwertować wszystkich zakończeń linii we wszystkich plikach, ale po prostu nie chcesz, aby cały plik był zgrupowany w pierwszym wierszu.
źródło
Istnieje wiele sposobów tłumaczenia znaków eoln w plikach TEKSTOWYCH, a każdy ma swoje ulubione.
Ale zawsze przesyłam pliki z systemu Linux do systemu Windows w trybie BINARNYM, a następnie otwieram pliki TEXT w systemie Windows za pomocą edytora zdolnego do otwierania obu typów i zapisywania ich w dowolnej formie, jeśli to konieczne.
Użyłem do tego Edytora plików Programmers, ale Notepad ++ też to potrafi. Program WordPad jest także przydatny [przynajmniej do przeglądania plików zakończonych LF].
Mam na myśli proste pliki tekstowe, które mogły powstać w systemie Linux i muszą być czytelne w świecie Windows (standard defacto). Nie jestem pewien, co miałeś na myśli przez „pliki z uniksowymi plikami”.
źródło
Aby zaoferować więcej opcji (chociaż najbardziej podobała mi się odpowiedź hacka użytkownika user45832 ):
Konwertery online
Myślę, że program FTP z GUI zrobi to automatycznie
Jednowarstwowy pakiet / DOS (usuwa puste linie) :
PowerShell:
Mam dwa ostatnie stąd
źródło
Uzyskaj AWK dla Windows .
Konwertuj zakończenia linii uniksowych na zakończenia linii Windows:
Konwertuj zakończenia linii Windows na zakończenia linii Uniksa:
Starsze wersje
awk
nie zawierają tejsub
funkcji. W takich przypadkach należy użyć tej samej komendy, ale zastąpićawk
zgawk
lubnawk
.Źródło
źródło
W Wikipedii jest rozwiązanie w cmd:
W PowerShell można to zrobić na różne sposoby, odwracając czynności wykonane w tym pytaniu .
Można to również zrobić w VBScript i JScript, które są również narzędziami, które są już dostępne w systemie Windows bez instalowania aplikacji innej firmy.
źródło
Moja dystrybucja Linuksa ma dwa małe narzędzia zwane
fromdos
itodos
których używam do tego zadania.źródło
Kiedyś otwierałem plik w 'edytuj' i zapisywałem po zakończeniu pracy ...
źródło
edit
z DOS, ale to pytanie dotyczy Windowsaedit
kiedyś był częścią systemu Windows doWindows XP
. Moja odpowiedź ma około 8 lat. W tym czasieedit
był częścią instalacji systemu Windows w wielu przypadkach ...