Como faço para converter todos os arquivos em uma pasta para uma linha diferente terminando? (no Windows)

11

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.

    
por Satish 21.05.2014 / 17:18

3 respostas

11

Instalado o Cygwin e o Dos2unix no Cygwin

find . -type f -exec dos2unix {} \;
    
por 23.05.2014 / 01:59
2

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.

  1. Localize src no Windows Explorer.
  2. Clique com o botão direito do mouse e abra o Git Bash nessa pasta no menu de contexto do Windows.
  3. Executar: find . -name "*.java" -exec dos2unix {} \; .

E é isso!

    
por 22.09.2017 / 08:36
0

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.

    
por 23.05.2014 / 02:20