Linux: Notas del uso de grep

Ya en mi post Guía de comandos UNIX/LINUX, había tocado el tema de cómo se usa el comando grep, sin embargo, me he topado con otras dos situaciones extra, en las que se puede usar el grep de manera un poco más especializada. Si tengo algo especial extra, lo agregaré en este mismo post después.

En este caso, vamos a ver dos usos especiales:

Busqueda con case indistinto

En ocasiones, al buscar en un archivo, o salida de un comando, se encuentran caracteres en mayúsculas y minúsculas de manera indistinta. Por ejemplo, si hacemos un more a un archivo que tengo en mi computadora, vemos que hay palabras en mayúsculas y minúsculas:

orlando_olguin@metallilaptop:~/downloads$ more ultrasearch_install.txt
SQL> star $ORACLE_HOME/ultrasearch/admin/wk0setup.sql /u01/app/oracle/product/10.2.0/db_1 @oasinfra sys orapotosi 'as sysdba' wksys SYSAUX
 TEMP "" "FALSE" DATABASE ":" /u01/app/oracle/product/10.2.0/db_1/jdbc/lib/classes12.zip /u01/app/oracle/product/10.2.0/db_1/jlib/orai18n.
jar /u01/app/oracle/product/10.2.0/db_1/jdk/bin/java /u01/app/oracle/product/10.2.0/db_1/ctx/bin/ctxhx acseweb:1688:oasinfra acseweb:1688:
oasinfra /u01/app/oracle/product/10.2.0/db_1

=========================================================
==============  Ultra Search Installation  ==============

============== argument list
OH=/u01/app/oracle/product/10.2.0/db_1
CONN_STRING=@oasinfra
SYS=sys
SYSPW=XXXXXXX
SYSROLE=as sysdba
WKSYSPW=XXXXXXX
WK_TABLESPACE=SYSAUX
WK_TEMPTABLESPACE=TEMP
PORTAL_USER=
LAUNCH_ANYWHERE=FALSE
INSTALL_TYPE=DATABASE

De tal forma que si buscamos las palabras SYSROLE o sysdba que están marcadas en negritas, con el inverso en su tipo de case, aparece lo siguiente:

orlando_olguin@metallilaptop:~/downloads$ grep sysrole ultrasearch_install.txt
orlando_olguin@metallilaptop:~/downloads$ grep Sysdba  ultrasearch_install.txt
orlando_olguin@metallilaptop:~/downloads$

Es decir, no encontró nada. Para evitar este tipo de situaciones, basta agregar al grep, la opción -i para que ignore el case de lo que se está buscando de tal forma que:

orlando_olguin@metallilaptop:~/downloads$ grep -i sysrole ultrasearch_install.txt
SYSROLE=as sysdba
orlando_olguin@metallilaptop:~/downloads$
orlando_olguin@metallilaptop:~/downloads$ grep -i SySdBa ultrasearch_install.txt
SQL> star $ORACLE_HOME/ultrasearch/admin/wk0setup.sql /u01/app/oracle/product/10.2.0/db_1 @oasinfra sys orapotosi 'as sysdba' wksys SYSAUX TEMP "" "FALSE" DATABASE ":" /u01/app/oracle/product/10.2.0/db_1/jdbc/lib/classes12.zip /u01/app/oracle/product/10.2.0/db_1/jlib/orai18n.jar /u01/app/oracle/product/10.2.0/db_1/jdk/bin/java /u01/app/oracle/product/10.2.0/db_1/ctx/bin/ctxhx acseweb:1688:oasinfra acseweb:1688:oasinfra /u01/app/oracle/product/10.2.0/db_1
SYSROLE=as sysdba
orlando_olguin@metallilaptop:~/downloads$

Ahora si los puede encontrar sin problemas. Así que les recomiendo usar esta opción útil al momento de realizar búsquedas en los archivos.

Revisar procesos excluyendo el comando ejecutado

Muchas veces, al realizar una búsqueda de algún proceso en especial, al añadir el comando grep para cerrar la búsqueda a algo especial, nos aparece el mismo comando que estamos ejecutando como para de lo encontrado:

orlando_olguin@metallilaptop:~$ ps -fe | grep nautilus
1000      1617  1534  0 08:28 ?        00:00:15 nautilus
1000      2498  2443  0 10:39 pts/0    00:00:00 grep --color=auto nautilus

Esto es un poco fastidioso, porque nos puede cansar el ver en la búsqueda el mismo comando que se ejecutó. Si se quiere evitar esto, se puede añadir un comando extra también de tipo grep, pero con la opción -v, que indica al sistema operativo que se excluya lo que se pone como texto.

En el siguiente ejemplo, se puede ver esto que comento ya aplicado, se evita que aparezca el proceso correspondiente al grep en específico:

orlando_olguin@metallilaptop:~$ ps -fe | grep nautilus | grep -v grep
1000      1617  1534  0 08:28 ?        00:00:15 nautilus

Si la información de este post te ha sido de utilidad o quieres que agregue algo más, deja por favor un comentario, contestaré a la brevedad.

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: