Existe um comando Bash para converter \ r \ n em \ n?
Quando carrego meus scripts do Windows para o Linux, preciso de um utilitário como este para fazer as coisas funcionarem.
linux
bash
newlines
carriage-return
user25321
fonte
fonte
dos2unix
normalmente está disponível, caso contráriosed -e 's/\r$//'
dos2unix
um programa Unix / Linux para fazer o que você deseja.Respostas:
Há sim:
fonte
O Translate ( tr ) está disponível em todos os Unixes:
fonte
\r
também. Eles são altamente incomuns.Com sed e encontre esse final com
.txt, .php, .js, .css
:fonte
Existe um utilitário Unix chamado
conv
que pode converter as terminações de linha. É frequentemente chamado com links flexíveis parau2d
oud2u
ouunix2dos
oudos2unix
.Além disso, existem utilitários chamados
fromdos
etodos
.fonte
Usando man 1 ed (que edita arquivos no local sem nenhum backup anterior - diferente de: sed .. -i ".bak" ...):
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
Sim, use
dos2unix
. Por exemplo:fonte
(Cada um também existe para sistemas não-Ubuntu, mas esses links são úteis.)
fonte