33 votos

¿Cómo convertir los saltos de línea de un archivo de texto entre los formatos Windows y Unix/Linux?

¿Cómo convierto los saltos de línea de un archivo de texto entre los formatos Windows y Unix/Linux?

Tengo un entorno *nix, pero que necesito importar y exportar datos con los saltos de línea del estilo de Windows. Pensé que habría una utilidad o comando estándar para hacer esto, pero parece que no puedo encontrarlo.

42voto

saschabeaumont Puntos 2632

Probablemente estás buscando dos2unix , unix2dos , todos o fromdos dependiendo de su distribución. Paquete Ubuntu/Debian todos / fromdos como parte de la tofrodos paquete de memoria.

13voto

nedm Puntos 4392

Edítalo en Vim y usa el set fileformat comando.

  • MS-DOS/Windows (CR+LF se rompe) a *nix (LF sólo se rompe)

    :set fileformat=unix
    :wq
  • *nix a MS-DOS/Windows*

    :set fileformat=dos
    :wq

8voto

AMH Puntos 16

Esto es lo que utilizo, similar a Chealion, para convertir las terminaciones de línea de Windows a Unix:

tr -d \\015 < windows > unix

1voto

Steven Murawski Puntos 6665

Una opción es utilizar unix2dos (y dos2unix para volver) en la línea de mando.

Otra es usar un editor de texto:
Para vi: :set ff=dos para establecer que los finales de línea sean finales de línea dos.
Para emacs: C-x [ENTRAR] f dos [ENTRAR]

Para tu editor favorito basado en la interfaz gráfica de usuario (p.e. jedit) recomiendo revisar el manual o Google.

Por último, si no quieres lidiar con un editor de texto y sólo lo haces usando utilidades más comunes y demás (o no tienes unix2dos instalado):

tr -d '\r' < infile > outfile para ir desde Windows -> Unix
awk 'sub("$", "\r")' unixfile.txt > winfile.txt para ir desde Unix -> Windows como tr no puede ir de Unix a Windows.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: