Cómo encontrar cadenas en un archivo en Linux

SEn ocasiones, es posible que deba buscar una palabra en particular o una cadena dentro de un archivo. Para hacer esto, casi todos los editores de texto tienen alguna implementación de GUI para ayudarlo. Pero para los usuarios de Linux, es mucho más productivo y conveniente realizar estas búsquedas desde la línea de comandos.

De hecho, Linux tiene una utilidad de línea de comandos poderosa y conveniente: el comando grep para este propósito. Con esto, puede buscar una cadena en particular no solo en un archivo, sino en varios archivos para una búsqueda más completa.

Sin embargo, antes de que pueda usar el comando grep, primero necesitará saber cómo funciona y su sintaxis. Entonces, para ayudarlo, hemos elaborado una guía detallada sobre el uso del comando grep para ayudarlo a encontrar cadenas en un archivo en Linux. No solo eso, sino que también le mostraremos cómo buscar cadenas en archivos a través del editor de texto de la línea de comandos y el editor de texto de la GUI.

Nota: Para este tutorial, hemos creado dos archivos de texto de demostración: demofile.txt y demofile02.txt. Usaremos el comando grep para buscar cadenas en estos archivos. A continuación, se muestra el contenido de ambos archivos para que sepa cómo funcionan los comandos.

Contenido de demofile.txt:

This is a demo file that I have created for demonstration purposes.
This contains a bunch of words to create sentences that finally end with a period.
This is for the grep example.

Contenido de demofile02.txt:

This is another demo file that I'll use for this demonstration.
This one is similar to the last one as it contains three lines with some words.
This second file will help to provide some diversified examples.
Índice

Encontrar cadenas en un archivo a través de la línea de comando (método GREP)

GREP es la abreviatura de Global Regular Expression Print. Es "global" porque puede buscar en todo su sistema Linux. “Expresión regular” es lo que llamamos el patrón de búsqueda de texto que usaremos con el comando. Y "Imprimir" significa que imprimirá los resultados de la búsqueda tan pronto como encuentre una coincidencia basada en la expresión regular proporcionada.

Ahora que tiene una idea de qué es el comando grep, veamos cómo podemos usarlo. Aquí está la sintaxis para usar el comando grep para encontrar una cadena en un archivo:

$ grep string filename

Deberá reemplazar la expresión "cadena" con la "expresión regular" que desea utilizar y el "nombre de archivo" con el nombre del archivo en el que desea buscar la cadena.

# 1. Usando GREP para encontrar una cadena en un archivo

Entonces, digamos que si desea buscar la palabra "demostración" en el archivo "demofile.txt", deberá usar este comando:

$ grep demonstration demofile.txt

Lo que da la salida:

1. Uso de GREP para encontrar una cadena en un archivo
Uso de GREP para encontrar una cadena en un archivo

Como puede ver, el comando obtiene la línea completa que contiene la cadena proporcionada. Si la cadena especificada aparece en varias líneas, las imprimirá todas. Veamos si funciona buscando la cadena "This" en el archivo "demofile.txt".

$ grep This demofile.txt

Y la salida es:

2. grep distingue entre mayúsculas y minúsculas
grep distingue entre mayúsculas y minúsculas

Observe cómo utilizó primero la cadena "esto" y no imprimió nada. Solo cuando ingresa "Esto" obtiene una coincidencia. Como tal, debe recordar que el comando grep distingue entre mayúsculas y minúsculas.

Para ignorar el caso, deberá ingresar este comando en su lugar:

$ grep -i this demofile.txt

3.Cómo ignorar mayúsculas y minúsculas en el comando grep
Cómo ignorar mayúsculas y minúsculas en el comando grep

Como puede ver ahora, aunque la cadena proporcionada es "esto", el comando coincide con "Esto" e imprime esa respuesta.

# 2. Usando GREP para encontrar la misma cadena en varios archivos

Para buscar en varios archivos la cadena proporcionada, todo lo que necesita hacer es agregar el comando con todos los nombres de archivo.

Aquí hay un ejemplo. Aquí estamos buscando la cadena "palabras" en los archivos "demofile.txt" y "demofile02.txt":

$ grep words demofile.txt demofile02.txt

Y la salida es:

4. Uso de GREP para encontrar la misma cadena en varios archivos
Uso de GREP para encontrar la misma cadena en varios archivos

Como puede ver, el comando grep no solo le mostrará el resultado coincidente, sino que también etiquetará convenientemente de qué archivo es.

# 3. Usando GREP para encontrar múltiples cadenas en múltiples archivos

También puede utilizar grep para buscar varias cadenas en uno o varios archivos. Esta es la sintaxis que tendrás que usar:

$ grep -E 'pattern1|pattern2|pattern3|...' filename1 filename2 filename3 ...

La opción -E que ingresamos trata el siguiente patrón como una expresión regular extendida, lo que nos permite buscar múltiples cadenas.

Ahora usemos lo que aprendimos para buscar las cadenas "archivo" y "palabras" en los dos archivos: "demofile.txt" y "demofile02.txt":

$ grep -E 'file|word' demofile.txt demofile02.txt

Y la salida es:

5. Uso de GREP para encontrar varias cadenas en varios archivos
Uso de GREP para encontrar varias cadenas en varios archivos

# 4. Consejos y trucos para usar el comando GREP para encontrar cadenas

A pesar de su simplicidad general, el comando grep es extremadamente poderoso. Aquí hay algunas formas en que puede usar el comando grep para búsquedas avanzadas de cadenas.

Por ejemplo, ¿sabía que puede usar el comando grep con comodines? Consideremos este comando:

$ grep word demofile*

Lo que da la salida:

6. grep y comodines
grep y comodines

Como puede ver, el comando ha buscado y ahora muestra los resultados de los archivos “demofile.txt” y “demofile02.txt”. Esto se debe a que usamos el asterisco

comodín utilizado para representar una o varias ocurrencias de cualquier carácter.

Para obtener más información sobre los diferentes tipos de comodines y cómo usarlos, puede consultar esta lectura: Los comodines en Linux explicados con 10 ejemplos.

  • Continuando, el comando grep también admite toneladas de opciones de comando. Ya hemos visto dos de ellos a estas alturas:
  • -i: se usa para ignorar mayúsculas y minúsculas.

-E: se usa para tratar la siguiente cadena como una expresión regular extendida.

  • Hay muchas otras opciones de comando grep como:
  • -r: realiza una búsqueda recursiva.
  • -c: cuenta el número total de veces que apareció la cadena.
  • -n: imprime el número de línea donde ocurrió la cadena.

-o: solo imprime la cadena correspondiente y no imprime la línea completa.

Todo lo que discutimos hasta ahora debería ser suficiente para ayudarlo a buscar cadenas en archivos. Sin embargo, si desea dominar el comando GREP, le recomendamos que consulte estos dos artículos:

Encuentre cadenas en un archivo a través de la línea de comando (usando editores de texto de línea de comando)

El comando grep es una herramienta poderosa que puede ayudarlo a realizar búsquedas avanzadas para hacer coincidir cadenas con varios archivos y directorios en su PC con Linux. Sin embargo, si ya tiene el archivo abierto en un editor de texto de línea de comandos, entonces no es necesario salir del editor de archivos y usar el comando grep.

De hecho, la mayoría de los editores de texto de línea de comandos ya vienen con una función de búsqueda incorporada.

Ahora, está más allá del alcance de este tutorial cubrir cada editor de texto de línea de comandos y cómo encontrar cadenas en un archivo abierto en ese editor de texto. Como tal, veremos los dos editores de texto de línea de comandos más populares que seguramente usará:

¿Cómo encontrar una cadena de texto en nano?

Digamos que tiene el archivo abierto en el editor de texto nano. En ese caso, todo lo que necesita hacer es presionar Ctrl + W, y encontrará un nuevo mensaje para escribir la cadena.

Una vez hecho esto, presione Enter y el cursor aterrizará en el primer carácter de la primera aparición de la cadena buscada.  Puede seguir presionando Enter para saltar a las otras instancias de cadena, si las hay.
7. Cómo encontrar una cadena de texto en nano

Cómo encontrar una cadena de texto en nano

¿Cómo encontrar una cadena de texto en vim?

Si está utilizando el editor de texto vim, puede escribir: / seguido de la cadena que desea buscar y luego presionar Enter.  Al igual que antes, colocará el cursor en la primera aparición de la cadena buscada.  Aquí también, puede seguir presionando Enter para saltar a las otras instancias de la cadena.
8. Cómo encontrar una cadena de texto en vim

Cómo encontrar una cadena de texto en vim

Encuentre cadenas en un archivo a través de la línea de comando (método GUI)

Incluso hay un método de GUI para buscar cadenas en un archivo. En esencia, es similar a la función "buscar y reemplazar" que puede ver en Microsoft Word; sin embargo, variará según el editor de texto de la GUI que esté utilizando.

Ahora, como saben, hay cientos de editores de texto y no es práctico cubrirlos todos aquí. Sin embargo, todos funcionan de manera similar, por lo que no tendrá ningún problema para trabajar con otros una vez que sepa cómo funciona uno de ellos.

Para este tutorial, usaremos el editor de texto predeterminado que viene con Ubuntu, llamado
9. Cómo encontrar cadenas usando editores de texto GUI

Cómo encontrar cadenas usando editores de texto GUI

Como puede ver en la imagen, hemos abierto demofile.txt en el editor. Ahora, hacemos clic en el menú desplegable, que revela las opciones de "Buscar" y "Buscar y reemplazar", que podemos usar para encontrar cualquier cadena en el archivo abierto.

Terminando

Eso nos lleva al final de este breve tutorial sobre cómo encontrar cadenas en un archivo en Linux. Esperamos que le resulte útil y que le haya ayudado a ser más productivo con la búsqueda de cadenas específicas en su sistema Linux.

Si tiene alguna pregunta, déjenos un comentario y nos aseguraremos de ayudarlo con sus consultas.

Si está comenzando con Linux, no olvide consultar nuestra serie Learn Linux. Está lleno de toneladas de increíbles tutoriales, instructivos y guías, diseñados para principiantes y usuarios más experimentados para ayudarlo a convertirse en un verdadero usuario avanzado de Linux.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir