LinuxParty

NUESTRO SITIO necesita la publicidad para costear hosting y el dominio. Por favor considera deshabilitar tu AdBlock en nuestro sitio. También puedes hacernos una donación entrando en linuxparty.es, en la columna de la derecha.

Ratio: 5 / 5

Inicio activadoInicio activadoInicio activadoInicio activadoInicio activado
 

Hoy me vi en la tarea de buscar una función de WordPress, pero como hacer para no tener que estar revisando cada archivo hasta encontrarla?

Si bien no existe un comando directo (aplicaciones no se) en linux para buscar cadenas de texto, lo podemos hacer mediante los comandos find, xargs y grep de la siguiente forma:

$ find /ruta/donde/buscar/ -name * | xargs grep "cadena a buscar"

Si tuvieras que buscar el contenido en nombres de ficheros que contengan espacios, entonces usa:

find . -iname "*.txt" | awk '{print "\""$0"\""}' | xargs grep "cadena a buscar"

Aunque la sintaxis es bastante clara y podemos ver el manual de cada comando en consola (con man comando) veamos es es lo que quiere decir esto:

  1. find realiza una lista de los ficheros de la ruta especificada. En este caso va a listar todos, pero si queremos buscar solo archivos de cierta extensión, solo hay que cambiar el asterisco (*) por el tipo de archivo deseado, por ejemplo *.php.
  2. | pasa la salida del comando anterior al siguiente.
  3. xargs toma la lista que resulta de find y la va pasando como llamadas consecutivas a grep.
  4. Y por ultimo, grep busca "cadena a buscar" dentro de los ficheros que le pasa xargs, buscados a su vez por find.

Esta, sería un ejemplo de la ayuda de xargs:

[javier @ localhost ~] $ xargs --help
Uso: xargs [OPCIÓN] ... COMANDO [INITIAL-ARGS] ...
Ejecute COMMAND con argumentos INITIAL-ARGS y más argumentos leídos de la entrada.

Los argumentos obligatorios y opcionales para opciones largas también son
obligatorio u opcional para la correspondiente opción corta.

  -0, --null                     los elementos están separados por un nulo, no por un espacio en blanco;
                                 deshabilita el procesamiento de cotizaciones y barras invertidas y
                                 procesamiento lógico de EOF
  -a, --arg-file=ARCHIVO        Leer argumentos de ARCHIVO, no entrada estándar
  -d, --delimiter=CARACTER      Los elementos en el flujo de entrada están separados por CARÁCTER,
                                 no por espacios en blanco; deshabilita la cita y la barra invertida
                                 procesamiento y procesamiento lógico de EOF
  -E END                        Establece la cadena EOF lógica; si END aparece como una línea
                                 de entrada, el resto de la entrada se ignora
                                 (ignorado si se especificó -0 o -d)
  -e, --eof [=END]              Equivalente a -E END si se especifica END;
                                 de lo contrario, no hay una cadena de fin de archivo
  -I R                          Igual que --replace=R
  -i, --replace [=R]            Reemplaza R en INITIAL-ARGS con nombres leídos
                                 de entrada estándar; si R no está especificado,
                                 asumir {}
  -L, --max-lines=MAX-LINES     Use como máximo MAX-LINES líneas de entrada no en blanco por
                                 línea de comando
  -l[MAX-LINES]                 Similar a -L pero por defecto es como máximo uno que no-
                                 línea de entrada en blanco si no se especifica MAX-LINES
  -n, --max-args=MAX-ARGS       Usa como máximo argumentos MAX-ARGS por línea de comando
  -P, --max-procs=MAX-PROCS     Se ejecuta en la mayoría de los procesos MAX-PROCS a la vez
  -p, --interactivo             Pregunta antes de ejecutar comandos
      --process-slot-var=VAR    Establece la variable de entorno VAR en procesos secundarios
  -r, --no-run-if-empty         Si no hay argumentos, entonces no ejecute COMMAND;
                                 si no se da esta opción, COMMAND será
                                 correr al menos una vez
  -s, --max-chars=MAX-CHARS     Limita la longitud de la línea de comando a MAX-CHARS
      --show-limits             Muestra los límites en la longitud de la línea de comandos
  -t, --verbose                 Comandos de impresión antes de ejecutarlos
  -x, --exit                    Exit si se excede el tamaño (ver -s)
      --help                    Mostrar esta ayuda y salir
      --version                 información de la versión de salida y salida 

Si te interesan conocer las Expresiones Regulares en Linux, mira nuestro mini-tutorial.

Pin It

Escribir un comentario


Código de seguridad
Refescar



Redes:



 

Suscribete / Newsletter

Suscribete a nuestras Newsletter y periódicamente recibirás un resumen de las noticias publicadas.

Donar a LinuxParty

Probablemente te niegues, pero.. ¿Podrías ayudarnos con una donación?


Tutorial de Linux

Filtro por Categorías