GNU/Linux >> Tutoriales Linux >  >> Ubuntu

¿Cómo usar Grep para buscar un patrón que comience con un guión (-)?

sudo find / -name "*" | xargs grep -sn --color=auto "-j"

El comando anterior regresa a continuación:

grep: invalid option -- 'j'
Usage: grep [OPTION]... PATTERN [FILE]...
Try `grep --help' for more information.
...

¿Cómo busco la cadena -j? ?

Respuesta aceptada:

En tu caso "-j" es interpretado por grep como un argumento/opción, no como un patrón de búsqueda, incluso si lo citó. Para que sea el patrón de lo que desea buscar, simplemente use -e opción:

sudo find / -name "*" | xargs grep -sn --color=auto -e "-j"

o incluso:

sudo find / -name "*" | xargs grep -sn --color=auto -e -j

El -e argumento/opción significa que el siguiente argumento es el patrón. Esto es de man grep :

   -e PATTERN, --regexp=PATTERN
          Use  PATTERN  as  the  pattern.   This  can  be  used to specify
          multiple search patterns, or to protect a pattern beginning with
          a hyphen (-).  (-e is specified by POSIX.)

Otras formas:

  • usar -- , como dijo @Rinzwind en su respuesta, para hacer grep para saber que las opciones terminaron.

  • usar para escapar del guión (- ):

    sudo find / -name "*" | xargs grep -sn --color=auto "-j"
    

Ubuntu
  1. ¿Cómo unir líneas que no comienzan con "#" o ";"?

  2. ¿Qué ruta utiliza `sudo` para buscar "?

  3. ¿Cómo buscar en archivos específicos que coincidan con un patrón?

  4. ¿Cómo usar la interfaz gráfica de usuario para buscar archivos en Gnome?

  5. ¿Cómo buscar claves o valores en Dconf?

Cómo usar el comando wget con ejemplos

Cómo usar el comando de apagado de Linux con ejemplos

Cómo usar variables de entorno con gráficos de Helm

Cómo usar el comando grep en Linux/UNIX

Cómo excluir en Grep

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