Cómo parecer un guru UNIX - Haciendo búsquedas en streams

6 - Haciendo búsquedas en streams

[editar]
Monografía creado por Terence Parr. Extraido de: http://www.tux.cl/doku.php?id=articulos:linux:como_parecer_un_guru_unix
02 de Marzo de 2006
Una de las herramientas más útiles entre las disponibles en UNIX, y la que probablemente usarás más es el comando ‘grep’. Esta herramienta hace coincidir expresiones regulares (que incluye palabras simples) y muestra las líneas resultantes.

El uso más simple permite buscar cierta secuencias de caracteres en un conjunto de arhivos. A continuación un ejemplo que busca cualquie referencia a la palabra System en los archivos java del directorio actual.

grep System *.java

Encontrarás que la expresión regular ‘.’ es bastante útil. Hace coincidir cualquier caracter único pero es típicamente combinado con el asterisco, que coincide cero o más del ítem que precede. Es importante encerrar la expresión dentro de comillas simples. El siguiente ejemplo, busca cualquier referencia a una página dentro de forum en el archivo log del servidor:

$ grep '/forum/.*' /home/public/cs601/unix/access.log

o de forma equivalente:

$ cat /home/public/cs601/unix/access.log | grep '/forum/.*'

La segunda forma es útil cuando se quiere procesar un conjunto de archivos como un sólo stream:

cat /home/public/cs601/unix/access*.log | grep '/forum/.*'

Si quieres buscar un string al principio de una línea puedes usar el ‘^’:

$ grep '^195.77.105.200' /home/public/cs601/unix/access*.log

Esto encontrará todas las líneas que comienza con la dirección IP 195.77.105.200, en todos los logs de acceso.

Si quieres invertir la coincidencia de patrones para encontrar líneas que no coinciden con un patrón, puedes usar el parámetro ‘-v’. Aquí hay un ejemplo donde se buscan referencias a GETs que no sean imágenes dentro de un archivo log:

$ cat /home/public/cs601/unix/access.log | grep -v '/images'

Ahora supongamos que tienes un archivo log del servicio http y te gustaría filtrar las solicitudes de páginas hechas por robots web (indexadores web de diferentes buscadores). Si tienes un archivo llamado spider.IPs, podrías encontrar todos los accesos que no sean de los robots mediante:

$ cat /home/public/cs601/unix/access.log | grep -v -f /tmp/spider.IPs

Finalmente, para ignorar la diferenciación entre mayúsculas/minúsculas de los stream de entrada, usar el parámetro ‘-i’.

[editar]

Sé el primero en opinar


Monografías relacionados con 'Cómo parecer un guru UNIX'

Conoce de un modo global la plataforma tremendamente popular y sus sub aplicaciones, conoce Unix.

Autor y licencia de 'Cómo parecer un guru UNIX'

Este contenido ha sido recopilado por el equipo de Wikilearning. Todo el contenido recopilado se ha obtenido respetando y comunicando en nuestro site la licencia de cada fuente.
Wikilearning tiene permiso expreso por escrito de los autores para publicar los contenidos que ha extraído de otras webs, incluyendo su uso comercial.