Recientemente volví a Windows desde Linux. Tengo algunos archivos con CRLF, algunos con LF y algunos que son mixtos. ¿Existe una utilidad que me ayudará a encontrar todos mis archivos tocados con Unix y convertirlos en archivos terminados CRLF adecuados?
La utilidad debe ejecutarse en Windows, no en Linux. Ya me he mudado. Prefiero no instalar Cygwin si puedo evitarlo.
linux
windows
text-editing
newlines
file-conversion
Matthew Scouten
fuente
fuente
Respuestas:
Puede convertirlos con la
unix2dos
utilidad en su plataforma Linux. También hayunix2dos
versiones disponibles para Windows .Si tiene instalado Perl, también puede usar este revestimiento:
fuente
Aquí hay una manera fácil y rápida.
Arrastre y suelte el archivo de texto en Chrome (no sé acerca de otros navegadores) y luego corte y pegue nuevamente en el archivo original :)
fuente
El que encontré mejor para revisar recursivamente carpetas, permitir filtros de archivos y permitir una simple búsqueda de "\ r \ n" y reemplazarlo solo con "\ n" fue Notepad ++ .
Notepad ++ es uno de los mejores programas de bloc de notas gratuitos y de código abierto para Windows. Es muy simple y poderoso. Manejó la línea que finaliza la búsqueda / reemplazo muy bien. Un contratista verifica un montón de archivos .c y .h en nuestro repositorio con terminaciones de línea Linux \ r \ n, pero como la mayoría de las personas se han estandarizado en las herramientas de compilación de Windows / Eclipse, los archivos no se compilarán hasta que las terminaciones de línea se conviertan .
fuente
Edit -> EOL Conversion
menú simple si el número de archivos a convertir es pequeño.Usa el cuchillo suizo para archivos .
Por ejemplo:
sfk addcr -dir . -file .txt -norec
cambia las terminaciones de LF a CR / LF para Windows, en todos los archivos .txt del directorio actual, pero NO dentro de subdirectorios (sin recursividad).
Pero este programa hace mucho más que eso.
fuente
-norec
porque quiero recursividad suceda, pero no parece como queEn Cygwin, puede convertir archivos Unix y "DOS" AKA Windows utilizando dos utilidades integradas:
Convierte a formato DOS CR / LF:
Convertir de nuevo al formato Unix CR:
El archivo se deja en su lugar con el mismo nombre.
¡Disfrutar! Almiar
fuente
dos2unix
ounix2dos
en caso de que no pueda encontrarlo como u2d o d2u. También hayunix2mac
Voy a lanzar esta solución por ahí. Git hará esto. Ver esta publicación al respecto
Entonces, teóricamente, podrías hacer esto para convertir un árbol completo
Cambie
crlf
alf
si quiere ir por el otro lado. NOTA: aún no has terminado, sigue leyendoEscriba
git status
para ver qué archivos se verán afectados. Puede que tenga que agregar líneas comoetc para
.gitattributes
evitar la conversión de ciertos archivos. También puede marcar explícitamente ciertos archivos como textoLuego solo repita estas 2 líneas después de haber editado
.gitattributes
Luego, use
git status
nuevamente para ver qué archivos se cambiarán. Cuando esté seguro de que todos los archivos que desea afectar se enumeran paragit status
luego confirmarahora revise todos los archivos nuevamente
Ahora deberían tener cualesquiera que sean sus finales de línea deseados
** NOTA: Si ya estaba usando git, omita los primeros 3 comandos comandos de git. Si no estaba usando git ahora puede eliminar el
.gitattributes
archivo y la.git
carpeta.** Haga una copia de seguridad de sus archivos: los
git rm --cached -r
elimina a todos (aunque en teoría están en su repositorio de git (la carpeta .git), así es como se restauran con el último comandogit reset --hard
. Es solo que, dado que los archivos se eliminan, probablemente sea mejor respaldarlos arriba.fuente
Use un editor de texto que comprenda ambas terminaciones de línea como SciTE o Notepad ++ si no necesita convertir todas las líneas que terminan en todos sus archivos, pero simplemente no quiere ver todo el archivo agrupado en la primera línea.
fuente
Hay muchas formas de traducir los caracteres Eoln en archivos TEXT, y todos tienen un favorito.
Pero siempre transfiero archivos de Linux a Windows en modo BINARIO, luego abro archivos TEXT en Windows con un editor capaz de abrir ambos tipos y guardarlos en cualquier forma, si es necesario.
Usé Programmers File Editor para esto, pero Notepad ++ también puede hacerlo. WordPad también es útil [al menos, para ver archivos terminados en LF].
Estoy pensando en los archivos de texto simples que pueden haberse originado en Linux y que deben ser legibles en el mundo (estándar de facto) de Windows. No estoy seguro de lo que quisiste decir con 'archivos tocados con Unix'.
fuente
Para ofrecer más opciones (aunque disfruté mejor la respuesta de hackeo de user45832 ):
Convertidores en línea
Supongo que un programa FTP GUI lo hará automáticamente
Batch / DOS one-liner (elimina líneas vacías) :
Potencia Shell:
Tengo los dos últimos de aquí
fuente
Obtén AWK para Windows .
Convierta las terminaciones de línea de Unix en terminaciones de línea de Windows:
Convierta las terminaciones de línea de Windows en terminaciones de línea Unix:
Las versiones anteriores de
awk
no incluyen lasub
función. En tales casos, use el mismo comando, pero reemplaceawk
congawk
onawk
.Fuente
fuente
En Wikipedia hay una solución en cmd:
En PowerShell hay varias formas de hacerlo invirtiendo lo que se hizo en esta pregunta .
También es posible hacer esto en VBScript y JScript, que también son herramientas que ya están disponibles en Windows sin instalar una aplicación de terceros.
fuente
Mi distribución de Linux tiene dos pequeñas utilidades llamadas
fromdos
ytodos
que uso para esta tarea.fuente
Solía abrir el archivo en 'editar' y guardarlo ya que el trabajo estaba hecho ...
fuente
edit
en DOS, pero esta pregunta es sobre Windowsedit
solía ser parte de Windows hastaWindows XP
. Mi respuesta es de unos 8 años. En ese momentoedit
fue parte de la instalación de Windows en muchos casos ...