lunes, 15 de febrero de 2016

Conociendo el comando grep en UNIX.

Como usar el comando grep en UNIX, ejemplos.


El comando grep es utilizado para buscar un texto en particular, dependiendo del tamaño del string, la búsqueda será más o menos precisa, funciona tanto para buscar nombres de archivos, así como también para una cadena de string dentro de un archivo de texto, es considerado por muchos y me incluyo uno de los comandos más útiles que podemos usar en sistemas operativos UNIX. Por default si utilizamos solo el comando grep, la palabra que queremos buscar seguida de nuestro archivo, nos trae solo los resultados que estén dentro de esa cadena, un ejemplo es el siguiente:

Tenemos un archivo llamado archivo1.txt, dicho archivo contiene el siguiente texto:

This is very very easy. Now, we are going to try grep command.
This is not easy. Now, we are going to try grep command.


user $ grep very exe1.txt

Por defecto el commando grep nos traera solo la linea que contiene la palabra “very”

user $ grep very exe1.txt
This is very very easy. Now, we are going to try grep command.


Usos más comunes:
ls | grep “archivo”


Ejemplo:

ls | grep ejemplo1.txt
ejemplo1.txt


ps | grep “proceso”

En este ejemplo se tiene que hacer mención que como el comando ps nos trae a pantalla toda una lista de todos los procesos que se están ejecutando por nuestro usuario, una línea del comando ps se vería de la siguiente manera:

user $ ps
PID TTY TIME COMMAND
11369 pts/6 0:00 ps
19838 pts/6 0:00 ksh



De esta manera podemos hacer un grep por el process ID 19838 y nos traerá toda la línea de ese process ID.

user $ ps | grep 19838
19838 pts/6 0:00 ksh


cat “archivo” | grep “palabra_que_deseamos_encontrar”

En este ejemplo me di la libertad de copiar el resultado del comando top a un archivo de texto llamado top.txt.


user $ cat top.txt | grep root
7 ? 6811 root 152 20 14908K 3672K run 78351:34 97.11 96.95 sa_comm

En este caso fue solo una línea, pero si más de una línea contiene la palabra root el resultado será diferente.

grep “palabra” archivo

Ejemplo

user $ grep root top.txt
7 ? 6811 root 152 20 14908K 3672K run 78351:34 97.11 96.95 sa_comm



Opción Uso
-c Cuenta las lineas que contengan dicha palabra en vez de mostrar el texto.
-oImprime solamente las palabras que concuerdan con nuestra busqueda, si tenemos un archivo que se llama "archivo1.txt" y escribimos "archivo", no nos traerá a pantalla todo el nombre del archivo.txt solo el texto "archivo"
-s Suprime los mensajes de error.
-v Invierte nuestra búsqueda, es decir imprimirá a pantalla el texto que no estamos buscando.
-y Permite la busqueda por minúsculas o mayúsculas.
-VMuestra en pantalla la información y la versión del comando grep
-b Imprime el tamaño en bytes a base 0
-qNo muestra ninguna informacion en pantalla, aunque el comando tengo un error de 
-i Sirve cuando buscamos una palabra en un archivo de texto, omitiendo si se encuentra en mayúsculas o minúsculas.

Existen muchas mas opciones, que puedes ver y utilizar con el comando man en UNIX, haciendo click en la página die.net, que es una enciclopedia de los comandos UNIX y LINUX.

No hay comentarios.:

Publicar un comentario