Wie konvertiere ich alle Dateien in einem Ordner in ein anderes Zeilenende? (unter Windows)


15

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.


Klingt so, als ob Ihre derzeitige Herangehensweise ziemlich gut ist
Ramhound

Antworten:


17

Installierte Cygwin und Dos2unix in Cygwin

find . -type f -exec dos2unix {} \;

1
Sie möchten vielleicht, -maxdepth 1damit es nicht durch Unterverzeichnisse geht
Barlop

1
Danke für den Tipp. Aber mein Anwendungsfall erfordert alle Dateien, einschließlich der in Unterordnern ..
Satish

Die Installation von Cygwin, um nur ein Programm auszuführen, erscheint mir als gewaltiger Overkill. Ich würde vorschlagen, nur die DOS-Version des gleichen Programms und dann einen einzeiligen Befehl in der Shell zu verwenden, um es für alle Dateien auszuführen.
Richard

1
@Richard: Stimmt, aber viele von uns haben Cygwin und seine Tools bereits installiert. Sie können es auch versuchen. Es wird Ihr Windows Linux-y und damit erträglicher machen. Außerdem müssen Sie nicht nach Windows-spezifischen Lösungen für Ihre Befehlszeilenprobleme suchen.
John Red

5

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.

  1. Lokalisieren src im Windows Explorer.
  2. Klicken Sie mit der rechten Maustaste und öffnen Sie Git Bash in diesem Ordner über das Windows-Kontextmenü.
  3. Run: find . -name "*.java" -exec dos2unix {} \;.

Und das ist es!


0

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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.