Guía para principiantes

Cómo encontrar cadenas en un archivo en Linux

Cómo encontrar cadenas en un archivo en Linux

A veces, 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 encontrar cadenas en estos archivos. Aquí hay un vistazo al contenido de ambos archivos para que sepa cómo funcionan los comandos.

Contenido de demofile.TXT:

Este es un archivo de demostración que he creado con fines de demostración. Contiene un montón de palabras para crear oraciones que finalmente terminan con un punto. Esto es para el ejemplo de grep.

Contenido de demofile02.TXT:

Este es otro archivo de demostración que usaré para esta demostración. Este es similar al anterior ya que contiene tres líneas con algunas palabras. Este segundo archivo ayudará a proporcionar algunos ejemplos diversificados.

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 según 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 cuerda Nombre del archivo

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

Por lo tanto, digamos que si desea buscar la palabra "demostración" en el archivo "demofile.txt ”, deberá utilizar este comando:

$ grep demofile de demostración.TXT

Lo que da la salida:

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 "demofile.txt "archivo.

$ grep Este demofile.TXT

Y la salida es:

grep distingue entre mayúsculas y minúsculas

Observe cómo usó la cadena "esto" primero, 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 este demofile.TXT

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 palabras demofile.txt demofile02.TXT

Y la salida es:

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 'patrón1 | patrón2 | patrón3 |…' nombre de archivo1 nombre de archivo2 nombre de archivo3… 

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 'archivo | palabra' demofile.txt demofile02.TXT

Y la salida es:

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:

grep y comodines

Como puede ver, el comando ha buscado y ahora muestra los resultados de ambos archivos "demofile.txt ”y“ demofile02.TXT". Esto se debe a que usamos el comodín de asterisco (*) que se usa para representar una o muchas 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:

Hay muchas otras opciones de comando grep como:

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.

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.

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 - "Editor de texto."

Cómo encontrar cadenas usando editores de texto GUI

Como puede ver en la imagen, hemos abierto el 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.

5 mejores juegos de arcade para Linux
Hoy en día, las computadoras son máquinas serias que se usan para jugar. Si no puede obtener la nueva puntuación más alta, sabrá a qué me refiero. En ...
Batalla por Wesnoth 1.13.6 Desarrollo liberado
Batalla por Wesnoth 1.13.6 lanzado el mes pasado, es el sexto lanzamiento de desarrollo en el 1.13.x y ofrece una serie de mejoras, sobre todo en la i...
Cómo instalar League Of Legends en Ubuntu 14.04
Si eres fanático de League of Legends, esta es una oportunidad para que pruebes League of Legends. Tenga en cuenta que LOL es compatible con PlayOnLin...