Como faço para converter todos os arquivos em uma pasta para uma linha final diferente (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.
Como faço para converter todos os arquivos em uma pasta para uma linha final diferente (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.
Respostas:
Cygwin e Dos2unix instalados no Cygwin
find . -type f -exec dos2unix {} \;
-maxdepth 1que ele não passar por subdiretórios
Você pode instalar o git bash em vez do cygwin32 (ou similar) no Windows. É fornecido com vários comandos UNIX-like (por exemplo, find, dos2unix, etc.,) no bashmodo de emulação. Uma vez instalado, a conversão de arquivos do Windows para o final do arquivo Unix deve ser fácil.
Digamos que você tenha seus arquivos (terminando com o sufixo .java ) em uma árvore de pastas chamada src e deseje converter os finais deles do Windows para os do Unix.
find . -name "*.java" -exec dos2unix {} \;.E é isso!
Sua resposta para usar o dos2unix e o unix2dos é excelente.
Aqui está outra maneira com base em sua resposta.
Você pode usar o Gnuwin32, embora o pacote Gnuwin32 que possui os comandos seja Cygutils http://gnuwin32.sourceforge.net/packages/cygutils.htm, para obter o unix2dos.exe e o 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 para% f faria o que você deseja, use echo ou @ECHO, por exemplo,
para% f em (*) do @ECHO unix2dos% f
E você pode usar o xxd para criar os arquivos e testar se eles são convertidos. O xxd para Windows vem com o VIM C: \ "" Arquivos de Programas \ 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 de usar uma distro * nix, olhando para o apt-get (pesquisa do apt-cache dos2unix) o pacote é realmente (talvez sem surpresa!) dos2unix (instalado com o apt-get install dos2unix) e isso inclui o dos2unix executável, o executável unix2dos. Se você pesquisar no apt-cache unix2dos, ele mostrará o pacote dos2unix.