Las 6 mejores herramientas de CLI para buscar datos de texto sin formato utilizando expresiones regulares

Las 6 mejores herramientas de CLI para buscar datos de texto sin formato utilizando expresiones regulares

Esta guía ofrece un recorrido por algunas de las mejores herramientas de línea de comandos que se utilizan para buscar cadenas o patrones coincidentes en archivos de texto. Estas herramientas se utilizan generalmente junto con expresiones regulares, abreviadas como REGEX. que son cadenas únicas para describir un patrón de búsqueda.

Sin más preámbulos, profundicemos.

1. Grep Command

En primer lugar está la herramienta de utilidad grep, es un acrónimo de Global Regular Expression Print. es una poderosa herramienta de línea de comandos que resulta útil cuando se busca una cadena específica o un patrón en un archivo.

Grep. viene con distribuciones modernas de Linux por defecto y le brinda la flexibilidad de devolver varios resultados de búsqueda. Con grep, puede realizar una amplia gama de funciones como:

  • Buscar cadenas o patrones coincidentes en un archivo.
  • Buscar cadenas o patrones coincidentes en archivos comprimidos con Gzip .
  • Cuente el número de coincidencias de cadena.
  • Imprima los números de línea que contienen la cadena o patrón.
  • Busque de forma recursiva la cadena en directorios.
  • Realizar una búsqueda inversa (es decir, mostrar resultados de cadenas que no coinciden con los criterios de búsqueda).
  • Ignorar la distinción entre mayúsculas y minúsculas al buscar cadenas.

La sintaxis para usar el comando grep. es bastante simple:

$ grep pattern FILE freestar.config.enabled_slots.push

Por ejemplo, para buscar la cadena ‘ Linux. en un archivo, digamos hello.txt. sin tener en cuenta la distinción entre mayúsculas y minúsculas, ejecute el comando:

$ grep-i Linux hello.txt Buscar cadena en un archivo  Buscar cadena en un archivo Buscar una cadena en un archivo

Para obtener más opciones que puede usar con grep. simplemente lea nuestro artículo con ejemplos más ejemplos avanzados de comandos grep.

2. Sed Command

Sed, abreviatura de Stream Editor. es otra herramienta útil de línea de comandos para manipular texto en un archivo de texto. Sed busca, filtra y reemplaza cadenas en un archivo determinado de manera no interactiva.

De forma predeterminada, el comando sed. imprime la salida en STDOUT. ( Salida estándar. , lo que implica que el resultado de la ejecución se imprime en el terminal en lugar de guardarse en un archivo.

El comando Sed se invoca de la siguiente manera:

$ comando sed-OPTIONS [archivo a editar]

Por ejemplo, para reemplazar todas las instancias de ‘ Unix. con ‘ Linux. , invoque el comando:

$ sed ‘s/Unix/Linux’ hello.txt  Reemplazar cadena en un archivo  Reemplazar ce Cadena en un archivo Reemplazar cadena en un archivo

Si desea redirigir la salida en lugar de imprimirla en la terminal, use el signo de redirección (>) como se muestra.

$ sed ‘s/Unix/Linux’ hello.txt> output.txt  Redirigir salida a archivo  Redirigir salida a archivo Redirigir salida al archivo

La salida del comando se guarda en el archivo output.txt. en lugar de imprimirse en la pantalla.

Para ver más opciones que se pueden usar, una vez más, consulte las páginas del manual.

$ man sed

3. Ack Command

Ack. es una herramienta de línea de comandos rápida y portátil escrita en Perl. Ack. se considera un reemplazo amigable para la utilidad grep. y genera resultados de una manera visualmente atractiva.

El comando Ack. busca en el archivo o directorio las líneas que contienen la coincidencia para los criterios de búsqueda. Luego resalta la cadena correspondiente en las líneas. Ack. tiene la capacidad de distinguir archivos según sus extensiones de archivo y, hasta cierto punto, el contenido de los archivos.

Sintaxis del comando Ack:

$ ack [ opciones] PATRÓN [ARCHIVO …] $ ack-f [opciones] [DIRECTORIO …]

Por ejemplo, para buscar el término de búsqueda Linux. ejecute:

$ ack Linux hello.txt  Comprobar una cadena en un archivo  Verificar una cadena en un archivo Verificar una cadena en un archivo

La herramienta de búsqueda es bastante inteligente y si el usuario no proporciona ningún archivo o directorio, busca el directorio y subdirectorios actuales para patrón de búsqueda.

En el siguiente ejemplo, no se ha proporcionado ningún archivo o directorio, pero ack ha detectado automáticamente el archivo disponible y ha buscado el patrón coincidente proporcionado.

$ ack Linux  Cadena de búsqueda en un directorio  Cadena de búsqueda en un directorio Cadena de búsqueda en un directorio

Para instalar ack. en su sistema ejecute el comando:

$ sudo apt install ack-grep [En Debian/Ubuntu] $ sudo dnf install ack-grep [En CentOS/RHEL]

4. Awk Command

Awk. es un lenguaje de programación completo y también una herramienta de procesamiento de texto y manipulación de datos. Busca archivos o programas que contienen el patrón de búsqueda. Cuando se encuentra la cadena o el patrón, awk. realiza una acción en la coincidencia o línea e imprime los resultados en STDOUT.

El AWK está entre llaves, mientras que todo el programa está entre comillas simples.

Tomemos el ejemplo más simple. Supongamos que está imprimiendo la fecha de su sistema como se muestra:

$ date  Verifique la fecha del sistema Linux  Verificar la fecha del sistema Linux Verificar el sistema Linux Fecha

Suponga que solo desea imprimir el primer valor, que es el día de la semana. En ese caso, canalice la salida a awk. como se muestra:

$ date | awk ‘print $ 1’

Para mostrar los valores subsiguientes, sepárelos usando una coma como se muestra:

$ date | awk ‘print $ 1, $ 2’

El comando anterior mostrará el día de la semana y la fecha del mes.

 Ejemplos de comandos Awk  Ejemplos de comandos Awk Ejemplos de comandos Awk

Para obtener más opciones que puede usar con awk. simplemente lea nuestra serie de comandos awk.

5. Silver Searcher

Silver Searcher es una herramienta de búsqueda de código abierto y multiplataforma similar a ack. pero con énfasis en la velocidad. Le facilita la búsqueda de una cadena específica dentro de los archivos en el menor tiempo posible:

Sintaxis:

$ ag OPTIONS search_pattern/path/to/file

Por ejemplo, para busque la cadena ‘ Linux. en un archivo hello.txt. invoque el comando:

$ ag Linux hello.txt  Buscar cadena en archivo  Buscar cadena en archivo Buscar cadena en archivo

Para opciones adicionales, visite las páginas del manual:

$ man ag

6. Ripgrep

Por último, tenemos la herramienta de línea de comandos ripgrep. Ripgrep. es una utilidad multiplataforma para buscar patrones de expresiones regulares. Es mucho más rápido que todas las herramientas de búsqueda mencionadas anteriormente y busca en directorios de forma recursiva patrones coincidentes. En términos de velocidad y rendimiento, ninguna otra herramienta destaca que Ripgrep.

Por defecto, ripgrep. omitirá archivos binarios/archivos y directorios ocultos. Además, tenga en cuenta que, de forma predeterminada, no buscará archivos que sean ignorados por los archivos .gitignore/.ignore/.rgignore.

Ripgrep. también le permite buscar tipos de archivos específicos. Por ejemplo, para limitar su búsqueda a archivos Javascript. ejecute:

$ rg-Tsj

La sintaxis para usar ripgrep es bastante fácil:

$ rg [OPCIONES] PATTERN [ RUTA …]

Por ejemplo. Para buscar instancias de la cadena ‘Linux’. en archivos ubicados dentro del directorio actual, ejecute el comando:

$ rg Linux  Buscar cadena en un archivo  Buscar cadena en un archivo Buscar cadena en un archivo

Para instalar ripgrep. en su sistema, ejecute el siguientes comandos:

$ sudo apt install ripgrep [En Debian/Ubuntu. $ sudo pacman-S ripgrep [En Arch Linux. $ sudo zypper install ripgrep [En OpenSuse. $ sudo dnf install ripgrep [en CentOS/RHEL/Fedora.

Para opciones adicionales, visite las páginas de manual:

$ man rg

Estas son algunas de las herramientas de línea de comandos más utilizadas para buscar, filtrar y manipular texto en Linux. Si tiene otras herramientas que cree que hemos dejado de lado, háganoslo saber en la sección de comentarios.