Instalado o Cygwin e o Dos2unix no Cygwin
find . -type f -exec dos2unix {} \;
Como faço para converter todos os arquivos em uma pasta para uma linha diferente terminando (linux ou mac)? Estou usando o Windows.
Agora, minha abordagem é usar o Winscp para copiar para uma caixa linux e executar o dos2unix recursivamente na pasta.
Você pode instalar o git bash em vez do cygwin32 (ou similar) no Windows. Ele vem com vários comandos semelhantes a unix (por exemplo, find
, dos2unix
, etc.) no modo de emulação bash
. Uma vez instalado, a conversão de arquivos do Windows para as terminações de arquivos do Unix deve ser fácil.
Digamos que você tenha seus arquivos (terminando com o sufixo .java ) em uma árvore de pastas chamada src e você queira converter seus finais do Windows para Unix.
find . -name "*.java" -exec dos2unix {} \;
. E é isso!
Sua resposta para usar dos2unix e unix2dos é excelente.
Aqui está outra maneira baseada na sua resposta.
Você pode usar o Gnuwin32, por mais engraçado que o pacote Gnuwin32 que tem os comandos é o link do Cygutils, então você ' ll obter unix2dos.exe e dos2unix.exe em C: \ Arquivos de Programas .... \ GnuWin32 \ bin e com isso no seu 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>
E para testar se o seu% f faria o que você deseja, use echo ou @ECHO, por exemplo,
para% f in (*) do @ECHO unix2dos% f
E você pode usar o xxd para criar os arquivos e testar se eles são convertidos. O xxd for windows vem com o VIM C: \ Program "" Arquivos \ vim \ vim74 \ xxd.exe
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>
note- também no caso usando uma distro * nix, olhando para o apt-get (apt-cache dos2unix) o pacote é de fato (talvez sem surpresa!) dos2unix (então instalado com o apt-get install dos2unix) e isso inclui com o executável dos2unix, o executável unix2dos. Se você fizer o apt-cache search unix2dos, ele mostrará o pacote dos2unix.