Pregunta Convierte terminaciones de línea de DOS en terminaciones de línea de Linux en vim


Si abro archivos que creé en Windows, todas las líneas terminan con ^M.
¿Cómo elimino estos personajes a la vez?


587
2017-09-17 12:44


origen


Respuestas:


dos2unix es una utilidad de línea de comandos que hará esto, o :%s/^M//g lo hará si usa Ctrl-v  Ctrl-metro para ingresar el ^ M, o puedes :set ff=unix y vim lo hará por ti.

Los documentos en la configuración 'fileformat' son aquí, y la wiki de vim tiene un completo página en línea terminando conversiones.

Alternativamente, si mueve los archivos hacia adelante y hacia atrás mucho, es posible que no desee convertirlos, sino hacer :set ff=dos, entonces vim sabrá que es un archivo DOS y usará las convenciones de DOS para los finales de línea.


897
2017-09-17 12:45



Cambiar los line-end en la vista:

:e ++ff=dos
:e ++ff=mac
:e ++ff=unix

Esto también se puede usar como operación de guardado (: w solo no se guardará usando los line-end que ve en la pantalla):

:w ++ff=dos
:w ++ff=mac
:w ++ff=unix

Y puedes usarlo desde la línea de comandos:

for file in $(ls *cpp)
do 
  vi +':w ++ff=unix' +':q' ${file}
done

215
2017-09-18 18:53



Yo suelo usar

:%s/\r/\r/g

que parece un poco extraño, pero funciona debido a la forma en que vim coincide con los avances de línea. También me resulta más fácil de recordar :)


147
2017-07-30 01:17



Prefiero usar el siguiente comando:

:set fileformat=unix

También puedes usar mac o dos para convertir respectivamente su archivo a macintosh o convención de archivos MS-DOS / MS-Windows. Y no hace nada si el archivo ya está en el formato correcto.

Para obtener más información, consulte la ayuda de vim:

:help fileformat

71
2017-09-17 12:51



:%s/\r+//g

En Vim, eso elimina todos los retornos de carro y solo deja nuevas líneas.


19
2017-09-17 12:45



:set fileformat=unix para convertir de dos a unix.


16
2017-09-17 12:52



de: http://vim.wikia.com/wiki/Change_end-of-line_format_for_dos-mac-unix

[Esc]:% s / \ r $ //


13
2017-09-17 12:49



dos2unix puede modificar directamente el contenido del archivo.

Puede usarlo directamente en el archivo, sin necesidad de redirección temporal de archivos.

dos2unix input.txt input.txt

Lo anterior usa el supuesto teclado de EE. UU. Utilizar el -437 opción para usar el teclado del Reino Unido.

dos2unix -437 input.txt input.txt

9
2017-12-15 12:36



Convierte el directorio de archivos de DOS a Unix

Usando la línea de comando y sed, busca todos los archivos en el directorio actual con la extensión ".ext" y elimina todo "^ M"

@ https://gist.github.com/sparkida/7773170

find $(pwd) -type f -name "*.ext" | while read file; do sed -e 's/^M//g' -i "$file"; done;

también, como se mencionó anteriormente ^ M = Ctrl + V + Ctrl + M (No solo escriba el símbolo "^" y M)


7
2018-01-01 19:31



tr -d '\15\32' < winfile.txt > unixfile.txt

(ver: http://kb.iu.edu/data/acux.html)


6
2018-05-24 04:03