GNU/Linux >> Tutoriales Linux >  >> Linux

¿Busca múltiples patrones (palabras) con ack?

Para ag , a partir de la versión 0.19.2, el valor predeterminado es buscar en directorios y archivos de forma recursiva.

Para buscar múltiples patrones, puede usar una sintaxis similar a ack

ag 'pattern1|pattern2'

buscará tanto pattern1 y pattern2 .

En caso de que no quiera buscar recursivamente, puede establecer la profundidad de búsqueda en 1 con el interruptor --depth NUM

Por lo tanto,

ag 'pattern1|pattern2' --depth 1

solo buscará en el directorio actual ambos patrones.


Esto debería ser suficiente:

ack -R 'string1|string2'

Como -R es el predeterminado, puede omitirlo:

ack 'string1|string2'

Desde man ack :

-r , -R , --recurso

Recurse en subdirectorios. Este es el valor predeterminado y solo aquí para compatibilidad con grep. También puede usarlo para desactivar --no-recurseoff.

Si desea obtener el patrón de un archivo, digamos /path/to/patterns.file, puede usar:

ack "$(cat /path/to/patterns.file)"

o equivalentemente:

ack "$(< /path/to/patterns.file)"

No puedo encontrar un equivalente exacto a grep -f .


El comando ack también puede enlazarse con tuberías. Por ejemplo, el primer ack encuentra archivos que contienen patrón1 luego canalice eso a otro acuse de recibo para buscar solo esos archivos para pattern2

ack -l 'pattern1' | ack -x 'pattern2'

El -l parámetro significa simplemente enumerar los archivos coincidentes (en lugar del texto coincidente). El -x parámetro significa buscar solo los archivos canalizados a él. Esto es similar a reducir los archivos para la siguiente búsqueda de acuse de recibo.

ack -l 'pattern1' | ack -xl 'pattern2' | ack -x 'pattern3'

Este es un Y operador y no el operador OR dado en las otras soluciones.


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

  2. ¿Buscar dentro del cubo S3 con registros?

  3. Buscar archivos con Gui?

  4. Clasificación de varias claves con clasificación de Unix

  5. Systemd con múltiples execStart

Cómo encontrar archivos en Linux con el comando Buscar

Cómo hacer Grep para múltiples cadenas y patrones

Cómo administrar varias versiones de Java con jEnv en Linux

Cómo instalar y usar el comando Ack en Linux con ejemplos

Linux busca cadenas en carpetas y archivos con ack

Cómo buscar LDAP usando ldapsearch (con ejemplos)