Eu tenho um arquivo que só usa \n
para novas linhas, mas preciso que ele tenha \r\n
para cada nova linha. Como posso fazer isso?
Por exemplo, eu o resolvi no Vim usando :%s/\n/\r\n/g
, mas gostaria de usar um aplicativo de script ou de linha de comando. Alguma sugestão?
Tentei pesquisar isso com sed
or grep
, mas fiquei imediatamente confuso com as soluções alternativas da sequência de escape (estou um pouco verde com esses comandos).
Se estiver interessado, o aplicativo está relacionado à minha pergunta / resposta aqui
CR
antes de cada LF, apenas antes daqueles LFs que ainda não foram precedidos por um (e apenas um) CR.'\r'
comsed
faz o truque.É exatamente
unix2dos
isso que faz:Isso substituirá
file.txt
no local por uma versão com terminações de linha CRLF.Se você quiser fazer isso
sed
, poderá inserir um retorno de carro no final de cada linha:Isso substitui (
s
) a área de tamanho zero logo antes do final da linha ($
) por\r
. Para fazer a substituição no local (comounix2dos
faz), usesed -i.bak
, embora essa seja uma extensão não padrão - se você não a tiver, use um arquivo temporário.fonte
\r
em substituição não é portátil. Pelo menos, não funcionará no Mac OSX.u2d
,ux2dos
,todos
ordena ao redor também.Se você estiver fazendo a conversão em uma máquina Unix (OS X, Linux), abra o arquivo com
vi
ouvim
:pressione a tecla ESC para garantir que você não esteja no modo de inserção e digite
ou
Isso faz a conversão no local, definindo o formato do arquivo.
Para escrever o arquivo e sair do editor, use
Na linha de comando, você pode fazer
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
Uma função de shell portátil que fará isso:
Com isso você pode fazer:
fonte
No awk você pode tentar
Ou
A
$'\r'
é um exemplo de estilo ANSI-C citar como suportado por alguns como conchasksh93
,bash
,zsh
,mksh
e o FreeBSDsh
e susceptível de ser incluído em questão 8 do Unix Especificação único .Ele oferece uma maneira geral de expressar caracteres estranhos, tente isso, por exemplo:
fonte