Ich bin kürzlich von Linux zu Windows zurückgekehrt. Ich habe einige Dateien mit CRLFs, einige mit LFs und einige, die gemischt sind. Gibt es ein Hilfsprogramm, mit dem ich alle meine Unix-Dateien finden und in richtige CRLF-terminierte Dateien konvertieren kann?
Das Dienstprogramm muss unter Windows und nicht unter Linux ausgeführt werden. Ich bin schon umgezogen Ich möchte Cygwin lieber nicht installieren, wenn ich es vermeiden kann.
linux
windows
text-editing
newlines
file-conversion
Matthew Scouten
quelle
quelle
Antworten:
Sie können sie mit dem
unix2dos
Dienstprogramm auf Ihrer Linux-Plattform konvertieren . Es gibt auchunix2dos
Versionen für Windows .Wenn Sie Perl installiert haben, können Sie auch diesen einen Liner verwenden:
quelle
Hier ist ein einfacher und schneller Weg.
Ziehe die Textdatei per Drag & Drop nach Chrome (ich kenne mich mit anderen Browsern nicht aus) und schneide sie dann aus und füge sie wieder in die Originaldatei ein :)
quelle
Die beste Methode, um Ordner rekursiv zu durchsuchen, Dateifilter zuzulassen und einfach nach "\ r \ n" zu suchen und durch "\ n" zu ersetzen, war Notepad ++ .
Notepad ++ ist eines der besten kostenlosen Open-Source-Notepad-Programme für Windows. Es ist sehr einfach und mächtig. Es handhabte das Zeilenende Suchen / Ersetzen ganz gut. Ein Auftragnehmer checkt eine Reihe von .c- und .h-Dateien mit Linux \ r \ n-Zeilenenden in unser Repository ein. Da die meisten Anwender jedoch standardisierte Windows / Eclipse-Build-Tools verwenden, werden die Dateien erst erstellt, wenn die Zeilenenden konvertiert wurden .
quelle
Edit -> EOL Conversion
Menü, wenn die Anzahl der zu konvertierenden Dateien gering ist.Verwenden Sie das Schweizer Feilenmesser .
Beispiel:
sfk addcr -dir . -file .txt -norec
Ändert die LF-Endungen in CR / LF für Windows für alle TXT-Dateien des aktuellen Verzeichnisses, jedoch NICHT in Unterverzeichnissen (keine Rekursion).
Dieses Programm kann aber noch viel mehr.
quelle
-norec
weil ich möchte, dass eine Rekursion stattfindet, aber es scheint nicht soUnter Cygwin können Sie mit zwei integrierten Dienstprogrammen zwischen Unix- und DOS-AKA-Windows-Dateien konvertieren:
In DOS CR / LF-Format konvertieren:
Zurück in das Unix CR-Format konvertieren:
Die Datei wird mit demselben Namen an Ort und Stelle belassen.
Genießen! Rick
quelle
dos2unix
oder ,unix2dos
falls Sie es nicht als U2D oder d2u finden. Es gibt auchunix2mac
Ich werde diese Lösung da draußen werfen. Git wird das tun. Siehe diesen Beitrag dazu
Theoretisch könnten Sie so einen ganzen Baum konvertieren
Wechseln Sie
crlf
zu,lf
wenn Sie den anderen Weg gehen möchten. HINWEIS: Sie sind noch nicht fertig, lesen Sie weiterGeben Sie ein, um
git status
zu sehen, welche Dateien betroffen sind. Möglicherweise müssen Sie Zeilen wie hinzufügenusw.,
.gitattributes
um das Konvertieren bestimmter Dateien zu vermeiden. Sie können bestimmte Dateien auch explizit als Text markierenDann wiederholen Sie einfach diese 2 Zeilen, nachdem Sie bearbeitet haben
.gitattributes
Verwenden Sie dann
git status
erneut, um zu sehen, welche Dateien geändert werden. Wenn Sie sicher sind, dass alle Dateien, die betroffen sein sollen, bisgit status
dahin aufgeführt sind, übernehmen Sie die FestschreibungJetzt checke alle Dateien nochmal aus
Sie sollten nun die von Ihnen gewünschten Zeilenenden haben
** HINWEIS: Wenn Sie git bereits verwendet haben, überspringen Sie die ersten 3 Befehle. Wenn Sie git nicht verwendet haben, können Sie jetzt die
.gitattributes
Datei und den.git
Ordner löschen .** Sichern Sie Ihre Dateien: die
git rm --cached -r
Löschungen sie alle (obwohl sie theoretisch in Ihrem git Repo (der .git Ordner) , die ist , wie sie durch den letzten Befehl gestellt bekommengit reset --hard
Es ist nur da Dateien gelöscht werden immer es ist wahrscheinlich am besten , sie zu unterstützen . oben.quelle
Verwenden Sie einen Texteditor, der beide Zeilenenden wie SciTE oder Notepad ++ versteht, wenn Sie nicht alle Zeilenenden in all Ihren Dateien konvertieren müssen, sondern nur nicht die gesamte Datei in der ersten Zeile bündeln möchten.
quelle
Es gibt viele Möglichkeiten, die Eoln-Zeichen in TEXT-Dateien zu übersetzen, und jeder hat einen Favoriten.
Ich übertrage jedoch immer Dateien von Linux nach Windows im BINARY-Modus. Dann öffne ich TEXT-Dateien in Windows mit einem Editor, der beide Typen öffnen kann, und speichere sie gegebenenfalls in einer der beiden Formen.
Ich habe dafür den Programmers File Editor verwendet, aber Notepad ++ kann das auch. WordPad ist auch nützlich [zumindest zum Anzeigen von LF-terminierten Dateien].
Ich denke an die einfachen Textdateien, die möglicherweise unter Linux erstellt wurden und in der (Standard-) Welt von Windows lesbar sein müssen. Ich bin mir nicht sicher, was Sie unter "Unix-Dateien" verstanden haben.
quelle
Um mehr Optionen anzubieten (obwohl mir die Hack-Antwort von user45832 am besten gefallen hat ):
Online-Konverter
Ich vermute, ein GUI-FTP-Programm erledigt das automatisch
Batch / DOS-Einzeiler (entfernt Leerzeilen) :
Power Shell:
Habe die letzten beiden von hier
quelle
Holen Sie sich AWK für Windows .
Konvertieren Sie Unix-Zeilenenden in Windows-Zeilenenden:
Konvertieren Sie Windows-Zeilenenden in Unix-Zeilenenden:
Ältere Versionen von
awk
enthalten diesub
Funktion nicht. In solchen Fällen verwenden den gleichen Befehl, sondern ersetzenawk
mitgawk
odernawk
.Quelle
quelle
Auf Wikipedia gibt es eine Lösung in cmd:
In PowerShell gibt es verschiedene Möglichkeiten, dies zu tun, indem Sie das in dieser Frage Gesagte umkehren .
Dies ist auch in VBScript und JScript möglich, die ebenfalls Tools sind, die bereits in Windows verfügbar sind, ohne dass eine Drittanbieteranwendung installiert werden muss.
quelle
Meine Linux - Distribution hat zwei kleine Dienstprogramme genannt
fromdos
undtodos
dass ich für diese Aufgabe verwenden.quelle
Früher habe ich die Datei in "Bearbeiten" geöffnet und gespeichert, als der Job erledigt war ...
quelle
edit
in DOS verwendet, aber diese Frage ist über Windowsedit
Früher war Windows ein Teil von bis zuWindows XP
. Meine Antwort ist ungefähr 8 Jahre alt. In dieser Zeitedit
war in vielen Fällen Teil der Windows-Installation ...