Cómo usar el comando Grep en Linux

Comprensión del comando grep con ejemplos prácticos para filtrar y mostrar fácilmente el contenido del archivo

GREPson las siglas de 'Global Regular Expression Print'. Es una utilidad de línea de comandos útil proporcionada por Linux, para buscar la línea de texto que coincide con el patrón proporcionado por el usuario.

greptoma la entrada del usuario en forma de cadenas o palabras que el usuario desea buscar en un archivo en particular. El comando luego verifica el archivo especificado por el usuario para este patrón y luego devuelve las líneas que coinciden con el patrón proporcionado.

Hace un excelente trabajo al filtrar el contenido de un archivo, lo que facilita nuestra tarea de buscar contenido particular en uno o varios archivos simultáneamente.

En este artículo, repasemos el funcionamiento del grepcomando con algunos ejemplos prácticos en detalle.

Opciones disponibles con grepcomando

Estas son algunas de las opciones fundamentales que utilizará con frecuencia con el grepcomando.

Opción Descripción
-i Para una búsqueda que no distingue entre mayúsculas y minúsculas
-r Para buscar recursivamente todos los archivos en el directorio especificado y sus subdirectorios
-c Para mostrar el número total de veces que aparece una cadena
-v Para mostrar las líneas que no coinciden
-w Filtrar por esa palabra en particular usada por separado

Usando el grepcomando

grepEl comando generalmente se usa con la |utilidad pipe ( ). Puede implementarse con la tubería de shell cuando desee usarlo con algunos otros comandos de Linux. Aunque, greptambién se puede usar individualmente sin la |utilidad pipe ( ).

Veamos algunas de las sintaxis básicas del grepcomando con y sin la utilidad de tubería.

Permítanme primero mostrarles el archivo de texto de muestra que usaré para ilustrar el grepcomando.

INDIA IS A BEAUTIFUL COUNTRY OF PEACE LOVING PEOPLE.
india stands on three pillars of legislature, executive and judiciary.
India Is a Beautiful Country Of Peace Loving People.
India cares for the people as it's resource
cartesian coordinates
importance of all th cartesian coordinates.
Following are two empty lines.



use of a bullock cart is a common sight in the village for the agrarian chores.

This is the end of the sample file.

greputilizado con la utilidad pipe (|)

grepEl comando se puede implementar junto con otros comandos de Linux utilizando las tuberías de shell. Por ejemplo, usar el catcomando para mostrar el contenido del archivo pero al mismo tiempo canalizar la salida usando el grepcomando para mostrar solo el contenido que desea ver. Esto quedará más claro cuando analicemos el ejemplo.

Sintaxis :

[command] | grep [string]

Ejemplo :

cat sample.txt | grep legislature

Aquí, he usado el catcomando para mostrar algunas líneas del archivo 'sample.txt'. Solo se mostrarán aquellas líneas que contengan la palabra "legislatura" e ignoren el resto de las líneas.

Salida :

[email protected]:~/workspace$ cat sample.txt | grep legislature
india stands on three pillars of legislature, executive and judiciary.
[email protected]:~/workspace$

grepusado sin utilidad de tubería (|)

grepincluso se puede usar directamente como un comando individual sin usar la | utilidad pipe ( ).

Sintaxis :

grep [string_to_be_searched] [filename]

Ejemplo :

grep India sample.txt

Salida :

India Is a Beautiful Country Of Peace Loving People.
India cares for the people as it's resource

Por lo tanto, he usado el grepcomando directamente para filtrar las líneas que contienen la cadena 'India' del archivo de texto 'sample.txt'.

Búsqueda que no distingue entre mayúsculas y minúsculas mediante el grepcomando

Linux es muy cauteloso con la distinción entre mayúsculas y minúsculas cuando activamos los comandos en la terminal. Esto requiere que el usuario tenga cuidado con el caso de la cadena puesta en el comando.

Veamos esto con un ejemplo.

grep peace sample.txt

En este caso, no obtendremos una salida ya que no existe una palabra como 'paz' en el archivo de muestra. Tenemos la palabra 'Paz' con una 'P' mayúscula. La palabra es la misma, pero cuando usamos el grepcomando sin ninguna opción, busca la coincidencia exacta en el archivo, sin tener en cuenta los cambios en el caso de la letra.

Para evitar esta ambigüedad, simplemente puede usar la -iopción que literalmente dice el grepcomando "olvídese del caso en el que puse la cadena y busque todos los patrones coincidentes en el archivo".

Sintaxis:

grep -i [string] [filename]

Ejemplo :

grep -i peace sample.txt

Salida :

INDIA IS A BEAUTIFUL COUNTRY OF PEACE LOVING PEOPLE.
India Is a Beautiful Country Of Peace Loving People.

Todas las líneas coincidentes se muestran independientemente del caso en el que se encuentre la cadena coincidente.

Búsqueda recursiva mediante grepcomando

La -ropción buscará todos los archivos en un directorio y todos sus subdirectorios que coincidan con el patrón de cadena proporcionado por el usuario en el comando.

Sintaxis :

grep -i -r [string] [file_path]

Ejemplo :

grep -i -r tomcat /home/gaurav/workspace

La cadena aquí es 'tomcat' y se buscará en el espacio de trabajo del directorio. Todos los subdirectorios y archivos en el directorio 'espacio de trabajo' también serán escaneados para que coincidan con el patrón de cadena proporcionado.

Salida :

./context_log.policy:// catalina.policy - Security Policy Permissions for Tomcat 7
./context_log.policy:// Note: If tomcat-juli.jar is in ${catalina.base} and not in ${catalina.home},
./context_log.policy://  grant codeBase "file:${catalina.base}/bin/tomcat-juli.jar" {..}
./context_log.policy:grant codeBase "file:${catalina.home}/bin/tomcat-juli.jar" {
./context_log.policy:    permission java.lang.RuntimePermission "accessClassInPackage.org.apache.tomcat.websocket.server";
./context.xml:    
./catalina.properties:# - Tomcat Bootstrap JARs
./catalina.properties:# - Tomcat API JARs
./catalina.properties:# - Tomcat JARs
./catalina.properties:# - Common non-Tomcat JARs
./catalina.properties:org.apache.catalina.startup.TldConfig.jarsToSkip=tomcat7-websocket.jar
./catalina.properties:tomcat.util.buf.StringCache.byte.enabled=true
./catalina.properties:#tomcat.util.buf.StringCache.char.enabled=true
./catalina.properties:#tomcat.util.buf.StringCache.trainThreshold=500000
./catalina.properties:#tomcat.util.buf.StringCache.cacheSize=5000
./server.xml:              pathname="conf/tomcat-users.xml" />
./server.xml:    
./tomcat-users.xml:  
./tomcat-users.xml:
./web.xml:  
./web.xml:  

NOTA : Mientras usamos la -ropción con el grepcomando, necesitamos proporcionar la ruta del archivo y no el nombre del archivo.

Buscando palabras completas solo con grepcomando

Muchas veces, el caso es que buscará una palabra, pero terminará llenando su terminal con las líneas coincidentes que contienen su palabra coincidente, pero no como una palabra individual. Es posible que vea las líneas que contienen algunas palabras cuya subparte es la cadena que ha ingresado.

¿Confundido con esto? No se preocupe, es mucho más fácil de entender una vez que obtiene el ejemplo.

Ejemplo :

Aquí, quiero buscar una palabra individual 'carrito' y mostrar todas las líneas que coinciden con esta palabra en el archivo 'sample.txt'.

grep -i cart sample.txt

Salida :

Cartesian coordinates
importance of all the Cartesian coordinates.
use of a bullock cart is a common sight in the village for the agrarian chores
The cart went missing as the boy left it loose.

En la salida, puede observar que la palabra 'cartesiano' también contiene la palabra 'carrito' y, por lo tanto, las líneas que contienen la palabra 'cartesiano' también se muestran aunque no queremos que se muestren.

Puede usar la -wopción con el grepcomando para resolver esta ambigüedad.

Sintaxis :

grep -i -w [string] [filename]

Ejemplo :

grep -i -w cart sample.txt

Salida :

use of a bullock cart is a common sight in the village for the agrarian chores.
The cart went missing as the boy left it loose.

Ahora, cuando haya usado la wopción - con grep, obtendrá solo las líneas en las que la palabra 'carrito' se usa como un todo.

Búsqueda invertida con grepcomando

grepEl comando también se puede utilizar de forma inversa. Podemos usar el grepcomando de manera opuesta ocultando las líneas coincidentes y solo mostrando las líneas donde no se encuentra la coincidencia. Puede hacer esto usando la -vopción con el grepcomando.

Sintaxis :

grep -i -v [string] [filename]

Ejemplo :

grep -i -v resource sample.txt

Salida :

INDIA IS A BEAUTIFUL COUNTRY OF PEACE LOVING PEOPLE.
india stands on three pillars of legislature, executive and judiciary.
India Is a Beautiful Country Of Peace Loving People.
cartesian coordinates
importance of all th cartesian coordinates.




use of a bullock cart is a common sight in the village for the agrarian chores.
This is the end of the sample file.

En la salida, se muestran todas las demás líneas además de la línea que contiene la palabra 'recurso'.

Contando apariciones de cadenas coincidentes

La salida del grepcomando suele ser muy larga si los datos del archivo son extensos. Cuantas más coincidencias, más largas son las salidas del grepcomando. Linux le proporciona una opción en la que puede mostrar el número de apariciones de la coincidencia.

Sintaxis :

grep -i -c [string] [filename]

Ejemplo :

grep -i -c india sample.txt

Salida :

[email protected]:~/workspace$ grep -i -c india sample.txt
4
[email protected]:~/workspace$

Aquí, la salida es un número que es el número de apariciones de la palabra 'India' en el archivo sample.txt.

NOTA : He usado la -iopción en todos los ejemplos para estar seguro con el problema de la distinción entre mayúsculas y minúsculas. En caso de que esté seguro del caso de la palabra que está buscando, puede omitir la -i opción con seguridad .

Conclusión

Hemos aprendido los usos fundamentales del grepcomando en los sistemas Linux en este tutorial. También aprendimos a mostrar contenido variado que se adapta mejor a nuestras necesidades y a no abarrotar la terminal con un montón de líneas. grepEl comando seguramente ahorrará tiempo si se usa para escanear grandes conjuntos de datos.

Tags: #grep

Cómo copiar y pegar en Chromebook

Cómo copiar y pegar en Chromebook

Lo primero que podría preguntarse al cambiar a un Chromebook es cómo hacer las cosas básicas, el tipo de cosas que tenía en la palma de su mano en su sistema operativo anterior. Copiar y pegar es una de esas funciones fundamentales que debe utilizar en un momento u otro.

Cómo realizar una prueba de mecanografía en Linux con tt

Cómo realizar una prueba de mecanografía en Linux con tt

En la era moderna de la tecnología, mecanografiar se ha convertido en una de las actividades más comunes para muchas profesiones. Aprender a escribir más rápido con precisión puede ayudarlo a hacer más cosas en la misma cantidad de tiempo.

¿Wi-Fi no funciona en Ubuntu? He aquí cómo solucionarlo

¿Wi-Fi no funciona en Ubuntu? He aquí cómo solucionarlo

Ubuntu es popular por su robustez y relativamente menos errores. Pero no está exento de problemas, seguro. Uno de esos problemas es con su controlador de Wi-Fi. Puede encender su sistema solo para descubrir que su Wi-Fi no funciona.

Cómo crear y escanear códigos QR en Chromebook

Cómo crear y escanear códigos QR en Chromebook

Los códigos de respuesta rápida, o códigos QR para abreviar, son códigos de barras avanzados que contienen más información que un código de barras tradicional. Estos códigos son bidimensionales, lo que le permite escanearlos vertical u horizontalmente.

Cómo instalar y eliminar paquetes en Arch Linux

Cómo instalar y eliminar paquetes en Arch Linux

¿Quiere instalar paquetes en Arch Linux pero no sabe cómo? Mucha gente se enfrenta a este problema cuando migra por primera vez de distribuciones basadas en Debian a Arch. Sin embargo, puede administrar fácilmente paquetes en su sistema basado en Arch utilizando administradores de paquetes.

El mejor editor de video gratuito para Ubuntu en 2020

El mejor editor de video gratuito para Ubuntu en 2020

Salvo toda la pelusa, aquí hay una lista de los mejores editores de video gratuitos para Ubuntu que puede usar para crear videos impresionantes.

Cómo instalar Spotify en Linux

Cómo instalar Spotify en Linux

Spotify es uno de los mayores servicios de transmisión de música que existen. Tiene clientes nativos para dispositivos móviles (Android e iOS) y de escritorio (Mac y Windows).

Los 15 mejores temas para Ubuntu 20.04 en 2020

Los 15 mejores temas para Ubuntu 20.04 en 2020

Una gran cantidad de nuevos temas actualizados están listos para instalarse en el nuevo escritorio GNOME de Ubuntu 20.04. Aquí hay una lista de los mejores temas de ubuntu en 2020

9 comandos básicos para comenzar con Linux

9 comandos básicos para comenzar con Linux

Las guías prácticas de Linux a menudo esperan que realice ciertas operaciones en la terminal, lo que puede parecer intimidante al principio. Pero no se preocupe; esta hoja de trucos de comandos de Linux cubrirá el proceso de abrir una terminal y emitir algunos comandos útiles.

Cómo mover archivos de Linux con el comando Mv

Cómo mover archivos de Linux con el comando Mv

Si bien es probable que ya sepa cómo mover un archivo en Linux usando el navegador de archivos GUI, es posible que se pregunte si hay un comando de movimiento en la terminal que le permita mover archivos rápidamente a diferentes directorios. El comando mv es el que desea y es fácil de usar con su sintaxis simple y algunos indicadores de seguridad opcionales.