Remove o retorno de carro no arquivo de texto através do Terminal no Mac OS X 10.10 (Yosemite)

1

Estou tentando substituir todos os retornos de carro por uma vírgula em um arquivo de texto, mas devo usar o comando sed incorretamente.

Como posso echo -e "\x0D" e gerar o retorno de carro, tentei sed -e 's/open/'$(echo "\x0D")'/' 1.txt > 2.txt sem sucesso. 1.txt contém o retorno de carro, como você pode ter inferido. Esse comando cria 2.txt , que contém o texto x0D .

    
por Needs More Documentation 11.09.2015 / 03:32

2 respostas

1

Isso não é realmente específico para o Mac OS X; o mesmo conceito funciona na maioria dos sistemas operacionais Linux / Unix. Mas enquanto você pode fazer isso em sed (editor de fluxo), você também pode usar tr (traduza caracteres) assim:

tr '\r' , < foo.txt

Portanto, se o conteúdo de foo.txt for este:

123
456
789

A saída desse comando tr seria então:

123,456,789,

E, em seguida, envie os resultados desse comando para um arquivo e adicione > bar.txt ao final desta forma:

tr '\r' , < foo.txt > bar.txt
    
por 11.09.2015 / 03:43
0

tr é uma solução melhor, mas você perguntou como fazer isso em sed .

com ansi-c quoting:

sed -E 's/'$'\r''/,/' file

sed $'s/\r/,/' file

sem ansi -c citando:

cr=$(printf '\r')
sed 's/'"$cr"'/,/' file
    
por 16.09.2015 / 19:48