Recentemente, voltei ao Windows a partir do Linux. Eu tenho alguns arquivos com CRLFs, alguns com LFs e outros que são misturados. Existe um utilitário que me ajudará a encontrar todos os meus arquivos tocados pelo Unix e convertê-los em arquivos terminados em CRLF adequados?
O utilitário deve ser executado no Windows, não no Linux. Eu já mudei. Prefiro não instalar o Cygwin se puder evitá-lo.
linux
windows
text-editing
newlines
file-conversion
Matthew Scouten
fonte
fonte
Respostas:
Você pode convertê-los com o
unix2dos
utilitário em sua plataforma Linux. Existemunix2dos
versões disponíveis para Windows também.Se você possui o Perl instalado, também pode usar este liner:
fonte
Aqui está uma maneira fácil e rápida.
Arraste e solte o arquivo de texto no Chrome (não conheço outros navegadores) e, em seguida, recorte e cole no arquivo original :)
fonte
O que eu achei melhor para percorrer recursivamente as pastas, permitir filtros de arquivos e permitir uma pesquisa simples por "\ r \ n" e substituí-lo por apenas "\ n" foi o Notepad ++ .
O Notepad ++ é um dos melhores programas de bloco de notas de código aberto para Windows. É muito simples e poderoso. Ele lidou com a linha que finaliza a pesquisa / substituição. Um contratado verifica vários arquivos .c e .h em nosso repositório com terminações de linha Linux \ r \ n, mas como a maioria das pessoas padronizou as ferramentas de construção do Windows / Eclipse, os arquivos não serão construídos até que as terminações de linha sejam convertidas .
fonte
Edit -> EOL Conversion
menu simples se o número de arquivos a serem convertidos for pequeno.Use o canivete suíço .
Por exemplo:
sfk addcr -dir . -file .txt -norec
altera as terminações LF em CR / LF para Windows, em todos os arquivos .txt do diretório atual, mas NÃO em subdiretórios (sem recursão).
Mas este programa faz muito mais do que apenas isso.
fonte
-norec
porque quero recursão para acontecer, mas não parece que issoNo Cygwin, você pode converter entre arquivos Windows Unix e "DOS" AKA Windows usando dois utilitários embutidos:
Converta para o formato DOS CR / LF:
Converta de volta para o formato Unix CR:
O arquivo é deixado no local com o mesmo nome.
Apreciar! Rick
fonte
dos2unix
ouunix2dos
caso você não consiga encontrá-lo como u2d ou d2u. Há tambémunix2mac
Vou jogar esta solução lá fora. Git fará isso. Veja este post sobre isso
Então, teoricamente, você poderia fazer isso para converter uma árvore inteira
Mude
crlf
paralf
se você quiser ir para o outro lado. NOTA: você ainda não terminou, continue lendoDigite
git status
para ver quais arquivos serão afetados. Pode ser necessário adicionar linhas comoetc para
.gitattributes
evitar a conversão de certos arquivos. Você também pode marcar explicitamente certos arquivos como textoEm seguida, basta repetir essas 2 linhas depois de editar
.gitattributes
Em seguida, use
git status
novamente para ver quais arquivos serão alterados. Quando tiver certeza de que todos os arquivos que você deseja afetar estão listadosgit status
, confirmeagora verifique todos os arquivos novamente
Agora eles devem ter quaisquer que sejam os finais de linha desejados.
** NOTA: Se você já estava usando o git, pule os 3 primeiros comandos. Se você não estava usando o git, agora pode excluir o
.gitattributes
arquivo e a.git
pasta.** Faça backup dos seus arquivos:
git rm --cached -r
eles serão excluídos (embora eles estejam teoricamente no seu repositório git (a pasta .git), que é como eles são restaurados pelo último comandogit reset --hard
. acima.fonte
Use um editor de texto que entenda as duas terminações de linha, como SciTE ou Notepad ++, se você não precisar converter todas as linhas em todos os seus arquivos, mas não queira ver o arquivo inteiro agrupado na primeira linha.
fonte
Existem muitas maneiras de traduzir os caracteres eoln nos arquivos TEXT, e todo mundo tem um favorito.
Mas eu sempre transfiro arquivos do Linux para o Windows no modo BINARY, depois abro arquivos TEXT no Windows com um editor capaz de abrir os dois tipos e salvá-los de qualquer forma, se necessário.
Eu usei o Programmers File Editor para isso, mas o Notepad ++ também pode fazê-lo. O WordPad também é útil [pelo menos para exibir arquivos terminados por LF].
Estou pensando nos arquivos de texto simples que podem ter se originado no Linux e precisam ser legíveis no mundo (padrão padrão) do Windows. Não sei ao certo o que você quis dizer com 'arquivos com toque unix'.
fonte
Para oferecer mais opções (mesmo que eu tenha gostado mais da resposta de hack do user45832 ):
Conversores online
Eu acho que um programa FTP GUI fará isso automaticamente
Linha única em lote / DOS (remove linhas vazias) :
PowerShell:
Tenho os dois últimos daqui
fonte
Obtenha o AWK para Windows .
Converta as terminações de linha Unix em finais de linha do Windows:
Converta as terminações de linha do Windows em finais de linha Unix:
As versões mais antigas de
awk
não incluem asub
função Nesses casos, use o mesmo comando, mas substituaawk
porgawk
ounawk
.Fonte
fonte
Na Wikipedia, há uma solução no cmd:
No PowerShell, existem várias maneiras de fazer isso, revertendo o que foi feito nesta pergunta .
Também é possível fazer isso no VBScript e JScript, que também são ferramentas que já estão disponíveis no Windows sem a instalação de um aplicativo de terceiros.
fonte
Minha distribuição Linux tem dois pequenos utilitários chamados
fromdos
etodos
que eu uso para esta tarefa.fonte
Eu costumava abrir o arquivo em 'editar' e salvar como o trabalho foi feito ...
fonte
edit
no DOS mas esta questão é sobre o Windowsedit
costumava fazer parte do Windows atéWindows XP
. Minha resposta tem cerca de 8 anos. Nesse tempoedit
era parte da instalação do Windows em muitos casos ...