Академический Документы
Профессиональный Документы
Культура Документы
GREP
$ grep -v "#" /boot/grub/menu.lst
- Contar el nmero de interfaces de red que tenemos definidos en el fichero
/etc/network/interfaces:
$ grep -c "iface" /etc/network/interfaces
- Mostrar las lneas de un fichero que contienen la palabra BADAJOZ o HUELVA:
$ grep -e "BADAJOZ" -e "HUELVA" archivo
- Mostrar las lneas de un fichero que contienen la palabra BADAJOZ o HUELVA,
numerando las lneas de salida:
$ grep -n -e "BADAJOZ" -e "HUELVA" archivo
- Mostrar los ficheros que contienen la palabra TOLEDO en el directorio actual y
todos sus subdirectorios:
$ grep -r "TOLEDO" *
Veamos algunos ejemplos con expresiones regulares:
- Obtener la direccin MAC de la interfaz de red eth0 de nuestra mquina:
$ ifconfig eth0 | grep -oiE '([0-9A-F]{2}:){5}[0-9A-F]{2}'
Sacamos la direccin MAC de la interfaz eth0 de nuestra mquina haciendo un:
ifconfig eth0
Y aplicando el filtro grep:
grep -oiE '([0-9A-F]{2}:){5}[0-9A-F]{2}'
Las opciones que he usado en grep son:
-o Indica que la salida del comando debe contener slo el texto que coincide
con el patrn, en lugar de toda la lnea, como es lo habitual.
-i Lo he usado para que ignore la distincin entre maysculas y minsculas.
-E Indica que vamos a usar una expresin regular extendida.
En cuanto a la expresin regular, podemos dividirla en dos partes:
([0-9A-F]{2}:){5} Buscamos 5 conjuntos de 2 carateres seguidos de dos
puntos
[0-9A-F]{2} seguido por un conjunto de dos caracteres.
Como las direcciones MAC se representan en hexadecimal, los caracteres que
buscamos son los nmeros del 0 al 9 y las letras desde la A a la F.
- Extraer la lista de direcciones de correo electrnico de un archivo:
GREP
grep -Eio '[a-z0-9._-]+@[a-z0-9.-]+[a-z]{2,4}' fichero.txt
Utilizo las mismas opciones que en el caso anterior:
-o Indica que la salida del comando debe contener slo el texto que coincide
con el patrn, en lugar de toda la lnea, como es lo habitual.
-i Lo he usado para que ignore la distincin entre maysculas y minsculas.
-E Indica que vamos a usar una expresin regular extendida.
Analicemos ahora la expresin regular:
[a-z0-9._-]+@[a-z0-9.-]+[a-z]{2,4}
Al igual que antes, la vamos dividiendo en partes:
[a-z0-9._-]+ Una combinacin de letras, nmeros, y/o los smbolos . _ y - de
uno o ms caracteres
@ seguido de una arroba
[a-z0-9.-]+ seguido de una cadena de letras, nmeros y/o los smbolos . y [a-z]{2,4} seguido de una cadena de entre dos y cuatro caracteres.
- Obtener la direccin IP de la interfaz de red eth1 de nuestra mquina:
$ ifconfig eth1 | grep -oiE '([0-9]{1,3}\.){3}[0-9]{1,3}' | grep -v 255
En el ejemplo anterior, hemos tomado la informacin que nos ofrece ifconfig:
ifconfig eth1
Hemos filtrado dicha informacin con el comando grep, obteniendo todas las
direcciones IP que aparecen:
grep -oiE '([0-9]{1,3}\.){3}[0-9]{1,3}'
Por ltimo, hemos filtrado la salida del comando anterior, para eliminar la
direccin de broadcast junto con la mscara de red para quedarnos slo con la
direccin IP de la mquina:
grep -v 255
La lnea anterior no mostrara las lneas que no contengan el valor 255, es
decir, las direcciones de broadcast y mscara de red.
Analicemos ahora el comando grep:
grep -oiE '([0-9]{1,3}\.){3}[0-9]{1,3}'
Al igual que en los otros dos ejemplos de expresiones regulares uso las
opciones -oiE en el comando grep:
-o Indica que la salida del comando debe contener slo el texto que coincide
GREP
con el patrn, en lugar de toda la lnea, como es lo habitual.
-i Lo he usado para que ignore la distincin entre maysculas y minsculas.
-E Indica que vamos a usar una expresin regular extendida.
En cuanto a la expresin regular:
'([0-9]{1,3}\.){3}[0-9]{1,3}'
([0-9]{1,3}\.){3} Representa 3 bloques de entre uno y tres dgitos separados
por puntos. Observemos que como el punto es un metacaracter, tengo que
usar el caracter de escape \ para que no sea interpretado como un
metacaracter, sino como un caracter normal.
[0-9]{1,3} Representa el ltimo bloque de la direccin IP, que est formado
por un nmero de entre 1 y 3 dgitos.
- See more at: http://enavas.blogspot.com.es/2008/04/el-shell-de-linuxcomando-grep.html#sthash.xPMfyNtK.dpuf
GREP
Ejemplos[editar]
Para mostrar todas las lneas que contienen la cadena tal en una lista de archivos (donde * representa todos los archivos en el
directorio actual):
$ grep tal *
Para mostrar todas las lneas que no contengan la cadena tal, se usa -v:
$ grep -v tal *
Para mostrar slo el nombre de tales archivos, se usa -l:
$ grep -l tal *
Para mostrar slo el nombre de los archivos que no contienen la cadena, se usa -L:
$ grep -L tal *
Para buscar recursivamente, no slo en los archivos del directorio actual sino tambin en los de sus subdirectorios (donde "."
representa el directorio actual), se usa -r:
$ grep -r tal .
En solaris no funciona el parmetro -r. Para obtener la misma funcionalidad, se debe utilizar adems el comando find y el
comando exec (Recordemos, el parmetro -l mostrar nicamente el nombre del archivo que contenga la cadena "tal"):
ps -ef
procesos actualmente en ejecucin, el siguiente comando imprime todos los procesos que est ejecutando el usuario actual:
GREP
o
SINTAXIS
grep [opciones] patrn [archivo ...] grep [opciones] [-e PATRN |-f archivo]
[archivo ...]
DESCRIPCIN
Grep busca en los archivos de entrada el nombre (o entrada estndar si no hay
ningn archivo nombre o el nombre del archivo - se le da) para las lneas que
contengan una coincidencia con el dada PATRN. Por defecto, grep muestra las
lneas coincidentes.Adems, dos programas de la variante egrep y fgrep estn
disponibles. Egrep es el mismo que grep-E. Fgrep es el mismo que grep-F.
ejemplo:
$ cat archivo_demo1
ESTA ES LA PRIMER LINEA EN MAYUSCULAS DE ESTE ARCHIVO
esta es la primer linea en minusculas de este archivo
Esta Es La Primer Linea Con El Primer Caracter De Cada Palabra Con Mayuscula
Hay dos lineas vacias sobre esta
GREP
Y esta es la ultima linea
$ cp /tmp/archivo_demo1 /tmp/archivo_demo2
GREP
opciones
GREP
-C, - count Suprime la salida normal, en lugar de imprimir un recuento de las
lneas que coincidan para cada archivo de entrada. Con el V-, - Invertir-partido
opcin (ver abajo), cuenta que no coinciden las lneas.
PATRN-e, - regexp = PATRN Usar PATRN como el patrn; til para proteger
a los patrones de inicio con -.
-F, - perodo de cadenas Interpretar PATRN como una lista de cadenas fijas,
separadas por la nueva lneas, cualquiera de los cuales es a ser igualado.
-F ARCHIVO, - file = ARCHIVO Obtener los patrones de archivo, uno por lnea. El
archivo vaco con- distribucin contiene los patrones de cero, por lo que no
coincide con nada.
GREP
-G, - basic-regexp Interpretar patrn como una expresin bsica regular (ver
ms abajo). Este es el valor predeterminado.
-H, - with-nombre del archivo Imprimir el nombre del archivo para cada
partido.
GREP
muestre un nmero de mayor que NUM. Cuando la v-o - sin puesta a coincidir
tambin utilizado, grep se detiene despus de la salida de NUM que no
coinciden las lneas.
-N, - line-number Prefijo en cada lnea de salida con el nmero de lnea dentro
de su entrada archivo.
-O, - slo de coincidencia Mostrar slo la parte de una lnea coincidente que
coincide con el patrn.
-R,-R, - recursive Lea todos los archivos en cada directorio, de forma recursiva,
lo que es equivalente- valente a la opcin-d recurse.
GREP
-U, - binary Tratar el archivo (s) como binario. Por defecto, bajo MS-DOS y MSWindows, grep adivina el tipo de archivo al mirar los contenidos de la primera
32KB lee desde el archivo. Si grep decide el archivo es un archivo de texto,
quita los caracteres CR de la original contenido del archivo (para hacer
expresiones regulares con ^ y $ de trabajo correctamente). Al especificar-U
anula esta conjetura, causando todo los archivos que se leen y se pasa al pie
de la letra el mecanismo de juego; si el archivo es un archivo de texto con
pares CR / LF al final de cada la lnea, esto har que algunas expresiones
regulares al fracaso. Este opcin no tiene efecto en las plataformas que no sea
MS-DOS y MS-Windows ventanas.
GREP
-W, - word-regexp Seleccione slo aquellas lneas que contienen los partidos
que forman su conjunto palabras. La prueba es que la subcadena coincidente o
bien debe ser al comienzo de la lnea, o precedida por una no-palabra concarcter constituyente. De manera similar, debe ser o bien al final de la lnea o
seguido de un carcter constituyente no-palabra. Palabra- personajes que lo
forman son letras, dgitos y el subrayado.
-X, - line-regexp Seleccione slo los partidos que coinciden exactamente con
toda la lnea. Obsoleto-y sinnimo de-i.
-Z, - null Un byte cero (el carcter ASCII NUL) en lugar del carcter que sigue
normalmente un nombre de archivo. Por ejemplo, grep -LZ genera un byte cero
despus de cada nombre de archivo en lugar de la habitual de nueva lnea.
Esta opcin hace que la salida sin ambigedades, incluso en la presencia de
nombres de archivo con caracteres especiales, como saltos de lnea. Esta
opcin se puede utilizar con comandos como buscar -Print0, perl -0, z-tipo, y
xargs -0 para procesar arbitraria nombres de los archivos, incluso aquellos que
contienen caracteres de nueva lnea.
- See more at: http://redesytrucos.blogspot.mx/2012/02/comando-greplinux.html#sthash.e4iWZgFu.dpuf