Na verdade, o pacote é o dos2unix. Quando instalamos esse pacote é disponibilizado os comandos dos2unix e unix2dos.
dos2unix converte arquivos de texto nos formatos DOS ou Mac para formato Unix e vice-versa.
Em arquivos texto DOS/Windows uma quebra de linha, também conhecida como nova linha, é uma combinação de dois caracteres: um Carriage Return (CR) seguido por um Line Feed (LF). Em arquivos texto do Unix uma quebra de linha é um único caractere: o Line Feed (LF). Em arquivos texto do Mac, anteriores ao Mac OS X, uma quebra de linha era um único caractere Carriage Return (CR). Hoje em dia, Mac OS usa quebras de linha no estilo do Unix (LF).
dos2unix
Instalando dos2unix
DEBIAN/UBUNTU/RASPBIAN
apt-get install dos2unix
CENTOS/FEDORA…
yum install unix2dos
Exemplos
Lê a entrada da “stdin” e escreve a saída para “stdout”:
dos2unix < a.txt
cat a.txt | dos2unix
Converte e substitui a.txt. Converte e substitui b.txt:
dos2unix a.txt b.txt
dos2unix -o a.txt b.txt
Converte e substitui a.txt no modo de conversão ascii:
dos2unix a.txt
Converte e substitui a.txt no modo de conversão ascii. Converte e substitui b.txt no modo de conversão 7bit:
dos2unix a.txt -c 7bit b.txt
dos2unix -c ascii a.txt -c 7bit b.txt
dos2unix -ascii a.txt -7 b.txt
Converte a.txt do formato do Mac para Unix:
dos2unix -c mac a.txt
mac2unix a.txt
Converte a.txt do formato do Unix para Mac:
unix2dos -c mac a.txt
unix2mac a.txt
Converte e substitui a.txt enquanto mantém a marca de data original:
dos2unix -k a.txt
dos2unix -k -o a.txt
Converte a.txt e escreve para e.txt:
dos2unix -n a.txt e.txt
Converte a.txt e escreve para e.txt, mantém a marca de data de e.txt igual a a.txt:
dos2unix -k -n a.txt e.txt
Converte e substitui a.txt. Converte b.txt e escreve para e.txt:
dos2unix a.txt -n b.txt e.txt
dos2unix -o a.txt -n b.txt e.txt
Converte c.txt e escreve para e.txt. Converte e substitui a.txt. Converte e substitui b.txt. Converte d.txt e escreve para f.txt:
dos2unix -n c.txt e.txt -o a.txt b.txt -n d.txt f.txt
Conversão com Recursividade
Em um shell Unix, os comandos find(1) e xargs(1) podem ser usados para executar recursivamente o dos2unix em todos os arquivos texto em uma árvore de diretórios. Por exemplo, para converter todos os arquivos .txt na árvore de diretórios sob o diretório atual, digite:
find . -name '*.txt' -print0 |xargs -0 dos2unix
A opção do find(1) -print0
e a opção correspondente do xargs(1) -0
são necessárias quando houver arquivos com espaços ou aspas no nome. Do contrário, essas opções podem ser omitidas. Outra alternativa é usar find(1) com a opção -exec
:
find . -name '*.txt' -exec dos2unix {} \;
Em um Prompt de Comando do Windows o seguinte comando pode ser usado:
for /R %G in (*.txt) do dos2unix "%G"
Usuários do PowerShell podem usar o seguinte comando no Windows PowerShell:
get-childitem -path . -filter '*.txt' -recurse | foreach-object {dos2unix $_.Fullname}
Veja mais em: https://dos2unix.sourceforge.io/dos2unix/pt_BR/man1/dos2unix.htm