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
- Cambiar la Hora y la Fecha al sistema Linux
- Montar un directorio remoto, vía NFS, en Linux
- Predicciones de Linux para 2025
- Elementary OS 8: una distribución de Linux para usuarios de Windows y macOS
- Renombrar multiples archivos masivamente en Linux (quitar espacios, cambiar mayúsculas) a la vez en Linux
- He utilizado Linux durante 30 años. Aquí hay 5 razones por las que nunca cambiaré a Windows o MacOS
- Mis predicciones sobre Linux para 2025: será un buen año
- ¿Por qué Torvalds eliminó a los encargados rusos del mantenimiento del núcleo de Linux?
- 10 cosas que siempre hago después de instalar Linux (y por qué tú también deberías hacerlo)
- 7 cosas que nunca hago después de instalar Linux (y por qué tú tampoco deberías)
- Detección de Intrusos: Snort, Base, MySQL, y Apache2 en Ubuntu Linux 7.10
- ¿Por qué no más personas usan Linux en el escritorio? Tengo una teoría que quizás no te guste.
- Los países occidentales ricos lideran la expansión mundial del petróleo y el gas
- Systemd 256.1 aborda la queja de que 'systemd-tmpfiles' podría eliminar inesperadamente su directorio /home
- Por qué un kernel Linux de distribución 'congelada' no es la mejor opción para la seguridad