Provavelmente você está procurando dos2unix , unix2dos , todos ou fromdos dependendo da sua distribuição. Pacote Ubuntu / Debian todos / fromdos como parte do pacote tofrodos da memória.
Como faço para converter as 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 padrão ou um comando para fazer isso, mas não consigo encontrá-lo.
Uma opção é usar unix2dos (e dos2unix para voltar) na linha de comando.
Outra é usar um editor de texto:
Para vi:: defina ff = dos para definir os finais de linha como finais de linha.
Para emacs: C-x [ENTER] dos [ENTER]
Para o seu editor favorito baseado em GUI (por exemplo, jedit), eu recomendo verificar o manual ou o Google.
Por último, se você não quer lidar com um editor de texto e apenas o faz usando utilitários mais comuns e tal (ou não tem o unix2dos instalado):
tr -d '\r' < infile > outfile para ir do Windows - > Unix
awk 'sub("$", "\r")' unixfile.txt > winfile.txt para ir do Unix - > Windows como tr não pode ir do Unix para o Windows.
Edite-o no Vim e use o comando set fileformat .
MS-DOS / Windows (quebras de CR + LF) para * nix (somente quebra de LF)
:set fileformat=unix
:wq
* nix para o MS-DOS / Windows
:set fileformat=dos
:wq
Isso é o que eu uso, semelhante ao Chealion, para converter o Windows em finais de linha do Unix:
tr -d \015 < windows > unix
Fazer isso com o POSIX é complicado:
POSIX Sed não suporta \r ou . Mesmo se o fizesse, o no lugar
opção -i não é POSIX
POSIX Awk suporta \r e , no entanto, o -i inplace opção
não é POSIX
d2u e dos2unix não são Utilitários POSIX , mas ex é
ex POSIX não suporta \r , , \n ou
Para remover retornos de carro:
awk 'BEGIN{RS="";ORS="";getline;gsub("\r","");print>ARGV[1]}' file
Para adicionar retornos de carro:
awk 'BEGIN{RS="";ORS="";getline;gsub("\n","\r&");print>ARGV[1]}' file