GNU/Linux >> Tutoriales Linux >  >> Linux

Usando Grep –recursive, ¿Cómo excluir una línea específica con la palabra 'no deseado' y 'querido' en ella?

Actualmente estoy creando mis archivos de puntos y quiero enumerar todas las TODO: ... comentarios en el directorio de mi proyecto, creé un alias bash para hacer esto:

 alias mytodo='grep --recursive "TODO: "'

Funciona bien, sin embargo, también devuelve la definición de alias. esta es la salida de muestra.

 [email protected]$ mytodo

 bash/profile.d/aliases/: alias mytodo='grep --recursive "TODO: "'
 bin/git_branch_status/: # TODO: Add checking of remote branch status.
 tools/setup/: # TODO: Add search for existing symlinks.

¿Cómo puedo excluir específicamente esa línea con la definición de alias?

Respuesta aceptada:

Una forma de evitar que una expresión regular coincida consigo misma es encerrar un solo carácter en una clase de carácter:

alias mytodo='grep --recursive "TOD[O]: "'

Alternativamente (felicitación a Stéphane Chazelas), puede guardar el alias con comillas adicionales en el patrón:

alias mytodo='grep --recursive "TO''DO: "'

Entonces la línea aún no se encontrará, pero el alias contiene el patrón original. Esto es útil cuando desea utilizar, por ejemplo. una coincidencia de cadena fija (grep -F ).


Linux
  1. Trabajando con tuberías en la línea de comando de Linux

  2. ¿Cómo ejecutar Grep con patrones múltiples y?

  3. Linux:¿cómo buscar una palabra específica y tomar texto?

  4. ¿Cómo eliminar un prefijo de palabra usando grep?

  5. ¿Cómo reemplazar el contenido de una columna específica con awk?

Cómo encontrar una cadena o palabra específica en archivos y directorios

Cómo excluir archivos y directorios con Rsync

Cómo realizar una búsqueda de patrones en archivos usando Grep

Usando el comando GREP en Linux con ejemplos

Manipulación de texto en la línea de comando con grep

¿Cómo seguir la salida -f con colores usando solo Awk y mostrar el resto de la salida?