salir lineas ejemplos cómo con borrar archivo agregar linux vim file editor dos2unix

linux - lineas - salir del editor vi



Convertir los finales de línea de DOS a finales de línea de Linux en vim (26)

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


Convertir el directorio de archivos de DOS a Unix.

Usando la línea de comandos y sed, busque todos los archivos en el directorio actual con la extensión ".ext" y elimine todos los "^ 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 "^" de caret y M)


Aunque este tema es muy antiguo, me gustaría poner otras cosas de wikia:

%s//r/+$//g

ese relleno encuentra todos los signos de retorno de carro (una y más repeticiones) hasta el final de la línea y borra, por lo que solo /n permanecerá en eol.


Cambia las líneas 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 las líneas 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


Con el siguiente comando:

:%s/^M$//g

Haz que aparezca ^M para que aparezca Ctrl V y luego Ctrl M. Ctrl V le dice a Vim que tome el siguiente carácter ingresado literalmente.


El comentario sobre la aparición de ^ M es lo que funcionó para mí. Simplemente escribiendo "^ M" en mi vi no tengo nada (no encontrado). Sin embargo, la secuencia CTRL + V CTRL + M lo hizo perfectamente.

Mi comando de sustitución de trabajo era

:1,$s/Ctrl-V Ctrl-M//r/g

y se veía así en mi pantalla:

:1,$s/^M//r/g


El siguiente comando se usa para reformatear todo el archivo .sh en el directorio actual, lo probé en mi sistema operativo Fedora.

for file in *.sh; do awk ''{ sub("/r$", ""); print }'' $file >luxubutmp; cp -f luxubutmp $file; rm -f luxubutmp ;done


En vim, escriba:

:w !dos2unix %

Esto canalizará el contenido de su búfer actual al comando dos2unix y escribirá los resultados sobre el contenido actual. Vim le pedirá que vuelva a cargar el archivo después de


Encontré una manera muy fácil: abra el archivo con nano: nano file.txt

Presione CTRL + O para guardar, pero antes de presionar Entrar , presione: ALT + D para alternar entre los finales de línea de DOS y Unix / Linux, o: ALT + M para alternar entre los finales de línea de Mac y Unix / Linux luego presione Entrar para guardar y CTRL + X para salir.


Esta es mi manera. Abrí un archivo en dos EOL y cuando guardo el archivo que se convertirá automáticamente a unix EOL

autocmd BufWrite * :set ff=unix


Los siguientes pasos pueden convertir el formato de archivo para dos a unix:

:e ++ff=dos Edit file again, using dos file format (''fileformats'' is ignored).[A 1] :setlocal ff=unix This buffer will use LF-only line endings when written.[A 2] :w Write buffer using unix (LF-only) line endings.

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


Normalmente uso

:%s//r//r/g

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


Para ejecutar directamente en la consola de Linux: vim file.txt +"set ff=unix" +wq


Por lo general, hay un comando dos2unix que puede usar para esto, solo asegúrese de leer el manual, ya que las versiones de GNU y BSD difieren en la forma en que manejan los argumentos.

Versión BSD:

dos2unix $FILENAME $FILENAME_OUT mv $FILENAME_OUT $FILENAME

Versión GNU:

dos2unix $FILENAME

Alternativamente, puede crear su propio dos2unix con cualquiera de las respuestas propuestas aquí, por ejemplo:

function dos2unix(){ [ "${!}" ] && [ -f "{$1}" ] || return 1; { echo '':set ff=unix''; echo '':wq''; } | vim "${1}"; }


Prefiero usar el siguiente comando:

:set fileformat=unix

También puede 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 más información, vea la ayuda de vim:

:help fileformat


Puedes usar el siguiente comando:
:%s/^V^M//g
donde ''^'' significa usar la tecla CTRL .


Puedes usar:

vim somefile.txt +"%s//r//r/g" +wq

o la dos2unix utility .


Quería nuevas líneas en lugar de las ^ M''s. Perl al rescate:

perl -pi.bak -e ''s//x0d//n/g'' excel_created.txt

O escribir a stdout:

perl -p -e ''s//x0d//n/g'' < excel_created.txt


Sabía que había visto esto en alguna parte. Aquí está el consejo de inicio de sesión de FreeBSD:

¿Necesitas eliminar todos esos caracteres ^ M de un archivo DOS? Tratar

tr -d //r < dosfile > newfile -- Originally by Dru <[email protected]>


Si crea un archivo en NotePad o NotePad ++ en Windows, lo lleva a Linux y lo abre por vim, verá ^ M al final de cada línea. Para eliminar esto,

En su terminal de Linux, escriba

dos2unix nombre_archivo.ext

Esto hará la magia requerida.



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

Los documentos sobre la configuración de ''formato de archivo'' están here , y la wiki vim tiene una página completa en las conversiones de final de línea .

Alternativamente, si mueve muchos archivos de un lado a otro, es posible que no desee convertirlos, sino más bien hacer :set ff=dos , para que vim sepa que es un archivo DOS y use las convenciones de DOS para los finales de línea.


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


dos2unix puede modificar directamente el contenido del archivo.

Puede utilizarlo directamente en el archivo, sin necesidad de redireccionar temporalmente el archivo.

dos2unix input.txt input.txt

Lo anterior usa el supuesto teclado estadounidense. Use la opción - 437 para usar el teclado del Reino Unido.

dos2unix -437 input.txt input.txt


:%s//r+//g

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


:g/Ctrl-v Ctrl-m/s///

Ctrl M es el carácter /r , o el retorno de carro, que agregan los finales de línea de DOS. Ctrl V le dice a vim que inserte un carácter literal Ctrl M en la línea de comando.

En conjunto, este comando reemplaza a todos con nada, eliminándolos de los extremos de las líneas.