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