Este blog tiene la idea de acercar un poco el tema de las herramientas computacionales, usando preferencialemente Linux, y traducir a "cristiano" todos esos programas, software y otras palabras raras que usan los que saben de computación y aquellos que dicen saber también. Por eso aquí va un filtro con cosas útiles e intentado ser claro, cualquier cosa... por mail, msn, comentarios, etc como quieran, manden preguntas, felicitaciones, reclamos, inquietudes, etc. etc.
Buscar aquí
30 octubre 2013
usar el punto . en búsquedas con grep
Grep es una gran herramienta para buscar, pero usar un punto . dentro del texto, lo torna problemático, pues lo considera como un reemplazo para cualquier carácter y si queremos buscar todos los archivos o palabras en un archivo donde hay un listado de archivos y se busca una extensión o tipo de archivos en particular, si usamos:
find /home/katador > archivosenhome
y ahora quiero buscar todos los archivos con extensión java dentro de archivosenhome... si uso:
grep .java archivosenhome
va a mostrar un listado gigantesco donde txt no necesariamente es la extensión, sino dentro del nombre...
/home/arturo/eclipsework/mytracker/src/com/example/mytracker/MainActivity.java
/home/arturo/eclipsework/.metadata/.plugins/org.eclipse.jdt.core/javaLikeNames.txt
/home/arturo/.eclipse/org.eclipse.platform_4.2.0_793567567/configuration/org.eclipse.osgi/bundles/450/1/.cp/images/topiclabel/ov_javadev48.gif
Como ven... muestra todo tipo de cosas... ahora si yo quiero sólo, pero sólo los archivos .java ejecuto:
grep "\.java" archivosenhome
las "" indican que sea ese texto y el \ es para "escapar" el punto e indicar que es un caracter más, no para que lo use como reemplazante. OJO que con esto mostrará todas las líneas que terminan con .java
Finalmente, si quiero buscar un texto que está en cualquier parte incluyendo el punto, se debe:
grep "\."texto archivosenhome
con esto, mostrará todas las líneas que tienen .texto en cualquier lugar.
Otra opción es utilizar la opción -F en grep, y el comportamiento es igual que la segunda opción, sería usar un:
grep -F .texto archivosenhome
Esto también fue probado en HPUX y funciona igual que lo descrito.
Suscribirse a:
Comentarios de la entrada (Atom)
No hay comentarios.:
Publicar un comentario