Wie konvertiere ich alle Dateien in einem Ordner in ein anderes Zeilenende (Linux oder Mac)? Ich benutze Windows.
Momentan benutze ich Winscp, um auf eine Linux-Box zu kopieren und dann dos2unix rekursiv für den Ordner auszuführen.
Wie konvertiere ich alle Dateien in einem Ordner in ein anderes Zeilenende (Linux oder Mac)? Ich benutze Windows.
Momentan benutze ich Winscp, um auf eine Linux-Box zu kopieren und dann dos2unix rekursiv für den Ordner auszuführen.
Antworten:
Installierte Cygwin und Dos2unix in Cygwin
find . -type f -exec dos2unix {} \;
-maxdepth 1damit es nicht durch Unterverzeichnisse geht
Sie können unter Windows git bash anstelle von cygwin32 (oder ähnlichem) installieren . Es kommt mit einigen Unix-ähnlichen Befehlen (zB find,dos2unix usw.) im bashEmulationsmodus. Einmal installiert, sollte das Konvertieren von Dateien von Windows zu Unix-Dateiendungen einfach sein.
Angenommen , Sie haben Ihre Dateien (die mit dem Suffix .java enden ) in einem Ordnerbaum namens src und möchten deren Endungen von Windows in Unix-Endungen konvertieren.
find . -name "*.java" -exec dos2unix {} \;.Und das ist es!
Ihre Antwort auf die Verwendung von dos2unix und unix2dos ist hervorragend.
Hier ist ein anderer Weg, der auf Ihrer Antwort basiert.
Sie können Gnuwin32 verwenden, obwohl das Gnuwin32-Paket mit den Befehlen Cygutils http://gnuwin32.sourceforge.net/packages/cygutils.htm ist. Dann erhalten Sie unix2dos.exe und dos2unix.exe in C: \ Programme .... \ GnuWin32 \ bin und damit in deinem PATH.
C:\somedir>dir<ENTER>
Volume in drive C has no label.
Volume Serial Number is DC46-3C68
Directory of C:\somedir
05/23/2014 01:10 AM <DIR> .
05/23/2014 01:10 AM <DIR> ..
05/23/2014 01:10 AM 4 file1
1 File(s) 4 bytes
3 Dir(s) 196,129,951,744 bytes free
Do this command to go from dos2unix
C:\somedir>for %f in (*) do dos2unix %f <ENTER>
C:\somedir>dos2unix file1 <-- This runs automatically from you doing the above command
file1: done.
And do this command to go from unix2dos
C:\somedir>for %f in (*) do unix2dos %f <ENTER>
C:\somedir>unix2dos file1 <-- This runs automatically from you doing the above command
file1: done.
C:\somedir>
Und um zu testen, ob Ihr for% f tun würde, was Sie wollen, verwenden Sie echo oder @ECHO, z. B.
für% f in (*), @ECHO unix2dos% f
Mit xxd können Sie die Dateien erstellen und testen, ob sie konvertiert wurden. xxd für Windows wird mit "" VIM C: \ Programme \ vim \ vim74 \ xxd.exe geliefert
so, i'll create a file, I like this style of command is it allows me to
create whateer file I want, a dos one or a unix one or anything.
61 is hex for 'a'
C:\somedir>echo 610d0a| xxd -r -p >testfile <ENTER>
check the file raw, in its hex
C:\somedir>cat testfile | xxd -p <ENTER>
610d0a
check the file in ascii or unicode
C:\somedir>cat testfile <ENTER>
a
and the following commands just prove that dos2unix and unix2dos work/are working fine.
C:\somedir>dos2unix testfile <ENTER>
testfile: done.
C:\somedir>cat testfile | xxd -p <ENTER>
610a
C:\somedir>unix2dos testfile <ENTER>
testfile: done.
C:\somedir>cat testfile | xxd -p <ENTER>
610d0a
C:\somedir>
Beachten Sie, dass das Paket auch für den Fall, dass Sie eine * nix-Distribution verwenden und sich apt-get (apt-cache search dos2unix) ansehen, in der Tat (vielleicht nicht überraschend!) dos2unix ist (also zusammen mit apt-get install dos2unix installiert) ausführbare Datei, die ausführbare Datei von unix2dos. Wenn Sie apt-cache search unix2dos ausführen, wird das Paket dos2unix angezeigt.