Como converter quebras de linha em um arquivo de texto entre os formatos Windows e Unix / Linux?
Eu tenho um ambiente * nix, mas preciso importar e exportar dados com as quebras de linha no estilo do Windows. Eu pensei que haveria um utilitário ou comando padrão para fazer isso, mas não consigo encontrá-lo.
dos2unix
se depare com essa pergunta procurando soluções do Windows, o site upstream é waterlan.home.xs4all.nl/dos2unix.html e também funciona no Windows.dos2unix
/unix2dos
no Mac OS X usando o Homebrew . Com o Homebrew instalado, o comando ébrew install dos2unix
, que usa essa fórmula .Uma opção é usar
unix2dos
(edos2unix
para voltar) na linha de comando.Outra é usar um editor de texto:
Para vi:: defina ff = dos para definir as terminações de linha como sendo finais de linha dos.
Para emacs: Cx [ENTER] f dos [ENTER]
Para o seu editor favorito baseado em GUI (por exemplo, jedit), recomendo verificar o manual ou o Google.
Por fim, se você não deseja lidar com um editor de texto e apenas o faz usando utilitários mais comuns e outros (ou não possui o unix2dos instalado):
tr -d '\r' < infile > outfile
ir do Windows -> Unixawk 'sub("$", "\r")' unixfile.txt > winfile.txt
para ir do Unix -> Windows, poistr
não pode ir do Unix para o Windows.fonte
ff
::e ++ff=unix
. Pelo menos, faz sentido para ados -> unix
conversão.Edite-o no Vim e use o
set fileformat
comandoMS-DOS / Windows (quebras de CR + LF) para * nix (apenas quebras de LF)
* nix para MS-DOS / Windows
fonte
hexdump -C
- também confirmou este é não pegajosa - ele é definido porvi
sessãoÉ isso que eu uso, semelhante ao Chealion, para converter o Windows em finais de linha Unix:
fonte
Fazer isso com o POSIX é complicado:
O POSIX Sed não suporta
\r
ou\15
. Mesmo se tiver, a opção no local-i
não é POSIXO POSIX Awk suporta
\r
e\15
, no entanto, a-i inplace
opção não é POSIXO d2u e o dos2unix não são utilitários POSIX , mas ex é
POSIX ex não suporta
\r
,\15
,\n
ou\12
Para remover retornos de carro:
Para adicionar retornos de carro:
fonte