GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo encontrar una cadena en un archivo en Linux

A veces, es posible que necesite 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. Al usar 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 deberá saber cómo funciona y su sintaxis. Entonces, para ayudarlo, hemos preparado 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 línea de comandos y el editor de texto 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 estos dos 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.

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 como llamamos al 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 provista.

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 usar 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:

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

$ grep This demofile.txt

Y la salida es:

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 this demofile.txt

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

#2. Uso de 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:

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

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

También puede usar grep para buscar varias cadenas en archivos únicos o múltiples. 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 varias 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:

#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:

Como puede ver, el comando ha buscado y ahora muestra los resultados para ambos archivos "demofile.txt" y "demofile02.txt". Esto se debe a que usamos el comodín asterisco (*) para representar una o varias apariciones de cualquier carácter.

Para obtener más información sobre los diferentes tipos de comodines y cómo usarlos, puede consultar esta lectura: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 por ahora:

  • -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 se produjo la cadena.
  • -o:solo imprime la cadena coincidente y no imprime la línea completa.

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

  • Uso del comando GREP en Linux con ejemplos 
  • Los cinco usos principales del comando GREP en Linux 

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

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 funcionalidad de búsqueda integrada.

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 aviso para escribir la cadena.

Una vez hecho esto, presione Entrar 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 cadenas, si las hay.

¿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. Similar a 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.

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

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

Ahora, como sabe, 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".

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

Conclusión

Eso nos lleva al final de este breve tutorial sobre cómo encontrar cadenas en un archivo en Linux. Esperamos que lo encuentre útil y que lo haya ayudado a ser más productivo con la forma en que busca 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á repleto de increíbles tutoriales, procedimientos y guías, diseñados para principiantes y usuarios más experimentados para ayudarlo a convertirse en un verdadero usuario avanzado de Linux.


Linux
  1. Cómo encontrar un archivo en Linux

  2. Cómo encontrar el archivo más antiguo en un árbol de directorios en Linux

  3. Cómo encontrar líneas que contienen una cadena en Linux

  4. Cómo grep \n en el archivo

  5. ¿Cómo recuperar un archivo eliminado en Linux?

Cómo encontrar el nombre de host en Linux

Permisos de Linux:cómo encontrar los permisos de un archivo

Cómo vincular un archivo en Linux

Cómo encontrar archivos basados ​​en la marca de tiempo en Linux

Cómo encontrar archivos que contengan una cadena de texto específica en Linux

Cómo encontrar las líneas más largas en un archivo en Linux