GNU/Linux >> Tutoriales Linux >  >> Linux

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

Esta guía hace 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 generalmente se usan 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. Comando Grep

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 al buscar una cadena específica o un patrón en un archivo.

Grupo se envía con las distribuciones modernas de Linux de forma predeterminada y le brinda la flexibilidad de devolver varios resultados de búsqueda. Con grep, puede realizar una amplia gama de funciones, como:

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

La sintaxis para usar grep El comando es bastante simple:

$ grep pattern FILE

Por ejemplo, para buscar la cadena 'Linux ' en un archivo, por ejemplo, hola.txt mientras ignora la distinción entre mayúsculas y minúsculas, ejecute el comando:

$ grep -i Linux hello.txt

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

2. Comando sed

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 dado de una manera no interactiva.

De forma predeterminada, sed el comando 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:

$ sed -OPTIONS command [ file to be edited ]

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

$ sed 's/Unix/Linux' hello.txt

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

El resultado del comando se guarda en output.txt archivo en lugar de ser impreso 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. Confirmar Comando

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 produce resultados de una manera visualmente atractiva.

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

Sintaxis del comando Ack:

$ ack [options] PATTERN [FILE...]
$ ack -f [options] [DIRECTORY...]

Por ejemplo, para comprobar el término de búsqueda Linux , ejecuta:

$ ack Linux hello.txt

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

En el siguiente ejemplo, no se proporcionó ningún archivo o directorio, pero ack detectó automáticamente el archivo disponible y buscó el patrón coincidente provisto.

$ ack Linux

Para instalar ack en su sistema ejecute el comando:

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

4. Comando Awk

Qué raro es un lenguaje de secuencias de comandos completo y también una herramienta de procesamiento de texto y manipulación de datos. Busca archivos o programas que contengan el patrón de búsqueda. Cuando se encuentra la cadena o el patrón, awk actúa sobre el partido o la línea e imprime los resultados en STDOUT .

El AWK el patrón está encerrado 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

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 valores posteriores, sepárelos con 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.

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

5. Buscador de plata

Silver Searcher es una herramienta de búsqueda de código abierto y multiplataforma similar a ack pero con un é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 buscar la cadena 'Linux ‘ en un archivo hola.txt invoca el comando:

$ ag Linux hello.txt

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 recursivamente los directorios en busca de patrones coincidentes. En términos de velocidad y rendimiento, ninguna otra herramienta destaca más que Ripgrep .

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

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

$ rg -Tsj

La sintaxis para usar ripgrep es bastante sencilla:

$ rg [OPTIONS] PATTERN [PATH...]

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

$ rg Linux

Para instalar ripgrep en su sistema, ejecute los siguientes comandos:

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

Para opciones adicionales, visite las páginas del 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 omitido, háganoslo saber en la sección de comentarios.


Linux
  1. Cómo convertir un archivo PPK a PEM usando Comando

  2. Las mejores herramientas para recuperar datos [Windows, Linux, DOS, MacOS X]

  3. Uso del comando Linux Basename en Bash Scripts

  4. Las mejores herramientas de transferencia de archivos en Linux

  5. Expresiones Regulares en el Comando Grep con 10 Ejemplos – Parte I

Cómo crear un archivo en Linux usando Terminal/Línea de comando

Cómo crear un enlace simbólico en Linux usando el comando Ln

Uso de Cat Command en Linux con ejemplos

Las 6 mejores formas de ver archivos en Linux

Cómo bloquear un archivo de texto en Linux usando el comando flock

Las 15 mejores herramientas de recuperación de datos de Linux:la elección de los profesionales