¿Cómo puedo eliminar todas las líneas de un archivo usando vi?

¿Cómo puedo eliminar todas las líneas de un archivo usando vi?

¿Cómo puedo eliminar todas las líneas de un archivo usando vi?

Por el momento lo hago usando algo como esto para eliminar todas las líneas de un archivo:

echo > test.txt

¿Cómo puedo eliminar todas las líneas usando vi?

Nota: Usarlo ddno es una buena opción. Puede haber muchas líneas.

Respuesta1

en vihacer

:1,$d

para eliminar todas las líneas.

Introduce :un comando (y mueve el cursor hacia abajo).
Es una indicación de en qué líneas debería funcionar 1,$el siguiente comando ( ). dEn este caso, el rango desde la línea uno hasta la última línea (indicado por $, por lo que no es necesario saber el número de líneas del documento).
La final dsignifica eliminar las líneas indicadas.

Hay una forma más corta ( :%d) pero nunca la uso. Se :1,$dpuede "adaptar" más fácilmente, por ejemplo, :4,$-2ddejando solo las 3 primeras y las 2 últimas líneas, eliminando el resto.

Respuesta2

En vi yo uso

:%d

dónde

  • :le dice a vi que entre en modo comando
  • %significa todas las lineas
  • d: borrar

En la línea de comando,

> test.txt

lo haré también.

¿Cuál es el problema con dd?

dd if=/dev/null of=test.txt

dónde

  • /dev/nulles un archivo especial de 0 bytes
  • ifes el archivo de entrada
  • ofes el archivo de salida

Respuesta3

Te recomiendo que hagas esto (debería funcionar en cualquier shell compatible con POSIX):

> test.txt

Si realmente quieres hacerlo con vi, puedes hacer:

  • 1G (ir a la primera línea)
  • dG (eliminar hasta la última línea)

Respuesta4

Si su cursor está en la primera línea (si no, escriba: ggo 1G), entonces puede usar dG. Eliminará todas las líneas desde la línea actual hasta el final del archivo. Entonces, para asegurarse de eliminar todas las líneas del archivo, puede mezclar ambas, lo que sería: ggdG(mientras está en modo comando).

O %den modo Ex, ejemplo de línea de comandos: vim +%d foo.bar.

Relacionado:¿Cómo puedo eliminar en VIM todo el texto desde la línea actual hasta el final del archivo?

información relacionada