GNU/Linux >> Tutoriales Linux >  >> Linux

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

El sistema operativo Linux le permite buscar tanto estructuras de directorios como archivos de directorios para coincidencias de cadenas de texto específicas. Una herramienta común que nos ayuda a lograr estas búsquedas en directorios es un grep (impresión de expresión regular global ) dominio. El uso de expresiones regulares de grep hace posible iniciar cualquier búsqueda de patrón de cadena hacia una salida textual coincidente en la línea de comando.

[ También te puede interesar:Ripgrep:la herramienta de búsqueda de línea de comandos más rápida para Linux ]

Sin embargo, los inconvenientes de grep están en su velocidad y características no flexibles. Aquí es donde ack la herramienta se hace cargo. Brinda búsquedas rápidas que se extienden a las búsquedas en el directorio del código fuente mientras le brinda a un usuario de Linux la flexibilidad de excluir ciertos resultados de los resultados de búsqueda.

Cómo instalar Ack en Linux

Cualquier plataforma compatible con Perl puede acomodar el ack herramienta de búsqueda. Lo instalamos haciendo referencia a su paquete principal, ack-grep .

$ sudo apt-get install ack-grep      [On Debian, Ubuntu and Mint]
$ sudo yum install ack-grep         [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux]
$ sudo emerge -a sys-apps/ack-grep  [On Gentoo Linux]
$ sudo pacman -S ack-grep           [On Arch Linux]
$ sudo zypper install ack-grep      [On OpenSUSE]    

Búsqueda de directorio de Ack

Desde retro se atribuye a estar orientado al código fuente, podemos demostrar su destreza en la búsqueda de patrones de cadenas a través de un directorio de código fuente. Github es un recurso de renombre para miles de directorios de código fuente. Un directorio de código fuente de proyecto ideal para esta guía de artículos es el proyecto neovim.

Instalar Git en Linux

$ sudo apt-get install git     [On Debian, Ubuntu and Mint]
$ sudo yum install git         [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux]
$ sudo emerge -a sys-apps/git  [On Gentoo Linux]
$ sudo pacman -S git           [On Arch Linux]
$ sudo zypper install git      [On OpenSUSE]    

Proyecto Clonar Neovim

Los muchos tipos de archivos diferentes en este proyecto de editor de texto de neovim son necesarios para nuestra guía de artículos.

$ git clone https://github.com/neovim/neovim.git

Navegue hasta neovim directorio clonado para iniciar nuestro tutorial.

$ cd neovim && ls

El directorio de nivel superior enumerado expone los archivos de rebajas (.md) , archivos de texto (.txt) y un archivo YAML.

Implementación de Comandos de Búsqueda Simple Ack

Dado que la mayoría de las consultas de búsqueda desde la ventana del terminal de Linux conducen a un desplazamiento incontrolable debido a los resultados infinitos, podemos canalizar estos resultados de búsqueda a "menos ” para instancias de resultados que excedan el tamaño normal de la ventana del terminal.

$ echo '--pager=less -RFX' >> ~/.ackrc

El reconocimiento anterior El comando de configuración maneja de manera inteligente las salidas de resultados desbordadas.

Encontrar el número total de archivos en un directorio

Este primer ejemplo de comando nos ayuda a distinguir la eficiencia lógica de ack buscar desde grep búsqueda. A través de grep , podemos averiguar el número total de archivos en el neovim clonado proyecto a través del siguiente comando:

$ find . | wc -l

Ack solo contará los archivos que crea que son lógicamente relevantes, por lo que su resultado será diferente.

$ ack -f | wc -l

El 7% anterior (2984-2772 ) los archivos descartados se ignoran de todos los ack consultas de búsqueda.

Encontrar una variación de patrón de cadena específica de un directorio

Intentemos consultar las ocurrencias instantáneas del patrón de cadena "restringir ”.

$ ack restrict

Los resultados anteriores apuntan a los números de línea exactos en los archivos que contienen la coincidencia del patrón de cadena. El patrón de pantalla generado da como resultado "restringir ” también son partes de palabras como restringido y restricción .

Encontrar una palabra de patrón de cadena específico de un directorio

Si no está interesado en que un resultado de búsqueda aparezca como una variación sino como una palabra completa, deberá implementar sus patrones de cadena de búsqueda de manera diferente.

$ ack -w restrict 

Como puede ver, el patrón de cadena de búsqueda busca "restringir ” como una palabra completa y no como parte de ninguna otra palabra.

Encontrar un patrón de cadena específico a partir de un tipo de archivo específico

Tal vez desee que sus búsquedas de patrones de cadenas se dirijan a un archivo específico como Python (--python) archivo, c (--c) archivo, vim (--vim) archivo o cualquier otro tipo de archivo, su consulta de patrón de cadena debe hacer referencia al tipo de archivo que busca.

$ ack -w --python restrict

El resultado del comando anterior apunta a la aparición de la palabra "restringir ” en línea 110 dentro del archivo Python “src/clint.py ”.

Encontrar la ocurrencia total de una búsqueda de patrón de cadena en cada archivo

Dado que el neovim clonado directorio que estamos usando tiene diferentes tipos de archivos, este comando cuenta la aparición de una búsqueda de patrón de cadena específica (restringir ) en cada uno de estos tipos de archivos.

$ ack -c restrict  

Controlar la salida de una búsqueda de patrón de cadena

La salida del comando anterior incluye archivos con coincidencias de patrón de cadena cero para la entrada de cadena especificada. Para evitarlos, el siguiente comando imprime el total de líneas de archivo que coinciden con una entrada de patrón de cadena específica.

$ ack -ch restrict

Podemos hacer que el resultado anterior sea más pequeño y preciso solicitando que el resultado de la búsqueda solo considere palabras completas y no variantes de palabras.

$ ack -ch -w restrict 

También podemos reducir el resultado del comando anterior para considerar solo los archivos de Python:

$ ack -ch -w --python restrict

También podemos usar el tiempo comando para monitorear la velocidad de nuestras búsquedas:

$ time ack -ch restrict

Al ser más específicos en nuestros criterios de patrones de búsqueda, obtendremos un resultado más rápido, como se demuestra a continuación, en comparación con los resultados anteriores.

$ time ack -ch -w --python restrict

También podríamos generar los nombres de archivo reales que coincidieron con un patrón de búsqueda.

$ ack -f --python

El patrón de búsqueda ack también podría apuntar a la convención de nomenclatura de un archivo. Cualquier C archivo con el “log ” puede coincidir con el siguiente comando:

$ ack -g log --cc

El atrás La herramienta de búsqueda es muy flexible cuando se maneja bajo un directorio de código fuente. Todavía puede adoptar su uso para archivos dentro de su entorno Linux. Es extensible y rápido. Usa el man ack Comando para encontrar más opciones para explorar esta herramienta rápida y liviana.


Linux
  1. Cómo usar el comando Hexdump de Linux con ejemplos prácticos

  2. Cómo usar tuberías y tuberías con nombre en Linux (con ejemplos)

  3. Comando SCP en Linux:cómo usarlo, con ejemplos

  4. Cómo usar el comando Rmmod en Linux con ejemplos

  5. Cómo usar el comando de apagado y reinicio de Linux con ejemplos

Cómo instalar y usar el comando de localización en Linux

Cómo instalar y usar el comando Ping en Linux

Cómo instalar Dig en Linux con ejemplos de línea de comandos

Cómo instalar y usar el comando fd en Linux

Cómo instalar y usar el comando Ack en el sistema Linux

Cómo instalar y usar el comando Ack en Linux