GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo puedo editar todos los archivos devueltos por find in vi en Linux?

Esto debería funcionar:

find . -name "*.txt" -exec vim {} + 

Usa Vim, es mejor para tu salud. :-)

El + a menudo pasado por alto opción a -exec hace que todos los nombres de archivo (hasta los límites de longitud de línea) aparezcan en una sola línea, es decir, aún obtiene todos los archivos abiertos en uno vim sesión (navegado con :n para siguiente y :N para el archivo anterior).

Con vim -p obtienes una pestaña de archivo para cada archivo. Marque :help tab-page-commands para más detalles.

Con vim -o obtendrá ventanas divididas horizontalmente para cada archivo, vim -O Ventanas divididas verticalmente. Marque :help window-move-cursor para más detalles.

Tenga en cuenta que la versión anterior de esta respuesta, vim $(find . -name "*.txt") , no funciona con espacios en los nombres de archivo y tiene implicaciones de seguridad.

Tubería en xargs vi da un Warning: Input is not from a terminal , además de una terminal con un comportamiento completamente falso después. El usuario grawity explicó por qué en un comentario a continuación, y con un poco más de explicación en esta pregunta.


O ejecuta vim y desde allí:

:args **/*.txt

Linux
  1. Cómo encontrar un archivo en Linux en todos los directorios recursivamente

  2. ¿Cómo puedo encontrar los archivos de encabezado del lenguaje de programación C en Linux?

  3. ¿Cómo puedo editar un archivo si no hay vi, vim, joe, etc.?

  4. ¿Cómo puedo encontrar todos los archivos vinculados en un sistema de archivos?

  5. ¿Cómo puedo editar varios archivos en VIM?

Cómo encontrar archivos usando la línea de comandos en la terminal de Linux

Consejos de Vim:edite archivos remotos con Vim en Linux

Cómo descomprimir los archivos gz en Linux

Cómo encontrar archivos basados ​​en la marca de tiempo en Linux

Cómo encontrar archivos modificados en las últimas 24 horas en Linux

Cómo encontrar archivos con el comando fd en Linux