Arquivos texto, ascii básico, em diferentes sistemas possuem terminações diferentes. No DOS uma mudança de linha é feita com dois bytes: CR (carriage return) e LF (Line Feed), enquanto que no Unix, isto é feito com apenas um byte, o LF.

Isto faz com que arquivos textos do DOS sejam visto no Unix como:

line1^M
line2^M
line3^M

enquanto que um arquivo semelhante no Unix seria visto no DOS como:

line1
     line2
          line3

já que ele possui apenas o caractere LF, alimentação de linha.

Na maioria dos Linux/Unix, existe os comandos:

[TABLE=29]

Sua sintaxe é bem simples:

todos  

e

fromdos  

Na versão que uso do Slackware64, current, e inclusive na 13 e 13.1, além de outros como vi reclamações pela rede, estes comandos em particular não estão funcionando. Eles fazem parte do pacote bin-11.1-x86_64-1.txz, da série “a”, na versão que estou usando.

Optei por baixar o Tofrodos, compilar e instalar, visto que ele usa apenas um único comando para transformar do DOS para o Unix e vise-versa.

wget http://tofrodos.sourceforge.net/download/tofrodos-1.7.8.tar.gz
...
[prompt]tar xvf tofrodos-1.7.8.tar.gz
...
[prompt]cd tofrodos/src
[prompt]make
[prompt]cp fromdos /usr/local/bin
[prompt]ln -s /usr/local/bin/fromdos /usr/local/bin/todos
[prompt]rm /usr/bin/{fromdos,todos}

A sua sintaxe difere um pouco para:

todos 

e

fromdos