Saltar al contenido

¿Cómo eliminar archivos usando grep y rm?

Solución:

Usar xargs:

grep -l --null magenta ./* | xargs -0 rm

El propósito de xargs es tomar la entrada en stdin y colocarla en la línea de comando de su argumento.

Qué hacen las opciones:

  • los -l La opción le dice a grep que no imprima el texto coincidente y, en su lugar, solo imprima los nombres de los archivos que contienen texto coincidente.

  • los --null La opción le dice a grep que separe los nombres de archivo con caracteres NUL. Esto permite que todo tipo de nombres de archivos se manejen de forma segura.

  • los -0 opción a xargs para tratar su entrada como separada por NUL.

He aquí una forma segura:

grep -lr magenta . | xargs -0 rm -f --
  • -l imprime los nombres de los archivos que coinciden con el patrón de búsqueda.
  • -r realiza una búsqueda recursiva del patrón magenta en el directorio dado .. Si esto no funciona, intente -R. (es decir, como varios nombres en lugar de uno).
  • xargs -0 alimenta los nombres de archivo de grep para rm -f
  • -- a menudo se olvida, pero es muy importante marcar el final de las opciones y permitir la eliminación de archivos cuyos nombres comienzan con -.

Si desea ver qué archivos están a punto de eliminarse, simplemente elimine el | xargs -0 rm -f -- parte.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *