Como remover o Ctrl-M dos arquivos em que dos2unix, perl, tr e sed não estão presentes?

9

Suponha que você esteja trabalhando em um servidor unix muito antigo, no qual dos2unix , perl , tr e sed não estão presentes. Como você pode converter arquivos do dos para o formato unix ?

    
por Hemant 12.08.2010 / 17:05

2 respostas

12

Acho que você está se referindo à remoção do sinal de intercalação no final das linhas. Você pode usar a pesquisa e substituir no vi para fazer isso.

No vi normalmente faço: (onde "^" representa CTRL):

:%s/^V^M//g

Que mostra na tela como:

:%s/^M//g
    
por 12.08.2010 / 17:58
6

Um servidor sem tr ou sed teria que ser muito antigo ou perder alguns comandos básicos. Espero que ed esteja lá; existia na primeira edição do Unix .

ed /path/to/file
1,$s/^V^M$//
w
q

onde ^V^M significa digitar Ctrl + V então Ctrl + M (inserir uma linha literal alimentação). Se você sabe que todas as linhas terminam em CR LF, você pode usar 1,$s/.$// (remover indiscriminadamente o último caractere em cada linha).

    
por 31.03.2011 / 22:42