jHernandez Blog
Blog de actividad de Jonathan Hernández Velasco

22 de Febrero del 2008

greph o grep sin hidden files (ficheros ocultos)

Grep es uno de los comandos de linux que más hago servir. Dentro de un proyecto normalmente busco las referencias a alguna palabra por grep recursivamente, pero lo malo es que si el proyecto tiene carpetas o archivos ocultos que no quieres incluir en la búsqueda (grep por defecto busca en todos los archivos, ocultos incluido) no hay manera fácil de hacerlo.

Por ejemplo, en el caso de que estes en un proyecto controlado por subversion y por tanto tienes muchas carpetas .svn con muchos .*, para ejecutar grep recursivamente pero sólo en ficheros y carpetas no ocultas deberíamos ejecutar esto:

grep -r "texto-a-buscar" `find \( ! -regex '.*/\..*' \) -type f`

No es un comando fácil para estar copiando/pegando en la consola… pero aquí entran los scripts en bash. Poniendo este sencillo script en cualquier lugar de vuestro path (/usr/local/bin por ej.) tendreis acceso a él desde cualquier usuario. Su uso es trivial, ponemos greph y luego el término a buscar. Ejemplos:

greph hola
greph 'hola que tal'

El código del script:

  1. #!/bin/bash
  2. if [ -z "$1" ]; then
  3.   echo "Se necesita un parametro para buscar entre los ficheros (p.e. greph foo)"
  4. else
  5.   exec grep -r "$1" `find \( ! -regex ‘.*/\..*’ \) -type f`
  6. fi

PARA ASEGURAROS QUE NO HAY NINGÚN CARACTER RARO, EN VEZ DE COPIAR/PEGAR BAJARLO DESDE AQUÍ: greph

Acordaos de darle permisos de ejecución:

chmod +x greph

Archivado en: Developer, Software Libre — jBilbo @ 15:24

11 de Febrero del 2008

Pasar un fichero de DOS a UNIX desde vim

Es un search/replace para quitar todas las “^M” típicas de un fichero DOS.

:%s/Ctrl-V Ctrl-M/ /g

Falta puntualizar que pongo Ctrl-V + Ctrl-M para que no se haga copy-paste. Esta combinación de teclas produce el “^M” necesario (el de carry return).

Archivado en: Software Libre — jBilbo @ 15:08

8 de Febrero del 2008

Para medir la calidad del código

Comic

Via OsNews

Archivado en: Developer — jBilbo @ 12:25

Copyright © 2008
Jonathan Hernández Velasco

mym

A no ser que se diga lo contrario:

Todos mis artículos y documentación tienen licencia de Creative Commons.
Todo mi software tiene licencia GNU GPL.
Los logos son propiedad de las respectivas compañias.
Licencia de Creative Commons