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.
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:
- 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.
- | pasa la salida del comando anterior al siguiente.
- xargs toma la lista que resulta de find y la va pasando como llamadas consecutivas a grep.
- 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.

-
Linux
- Cómo borrar archivos MUY GRANDES (100-200 GB) en Linux
- La cuota de mercado de Linux en Steam sigue siendo superior a la de Apple macOS
- ¿Puedes ejecutar Linux en un Commodore 64?
- Cambiar la hora en Linux con Chrony
- Ahora puede actualizar Linux Mint 21.1 a Linux Mint 21.2, así es como
- Renombrar archivos masivamente en Linux (quitar espacios, cambiar mayúsculas) a la vez en Linux
- Usa tmux para una terminal más poderosa para Linux
- Las mejores distribuciones ligeras Linux para equipos antiguos [con requisitos del sistema]
- Cómo actualizar de AlmaLinux 8 a AlmaLinux 9
- Control Web Panel, CWP, uno de los mejores paneles de control web hosting para Linux y gratuito
- Cómo instalar y habilitar la finalización automática de Bash
- Cómo configurar FirewallD en distribuciones basadas en RHEL, Fedora, Alma Linux, CentOS, y demás
- Aprenda a usar el comando 'fuser' con ejemplos en Linux
- The Silver Searcher: la herramienta alternativa para búsquedas internas, más rápida que grep en Linux
- Cómo enviar un mensaje a usuarios registrados en la terminal de Linux