1 votos

El uso de mdfind para evaluar el contenido de texto de un archivo especificado?

Me gustaría escribir un applescript para evaluar si un determinado archivo que contiene una cadena de caracteres especificada (tal vez como parte de una instrucción if... then). Quiero invocar un comando de la shell mediante mdfind para ello, y soy consciente de cómo restringir mdfind para encontrar los archivos que contengan la cadena de caracteres especificada sólo en los directorios especificados:

mdfind -onlyin /Users/viktor/Desktop/ nintendo

Este comando va a encontrar todos los archivos que contengan la cadena "nintendo". Es posible de alguna manera la consulta de un archivo en lugar de un directorio? Y devolver true / false o el propio archivo para indicar que la cadena está en el contenido de texto del archivo? Poner un nombre de archivo después de "-onlyin" no trabajo de curso...

1voto

adayzdone Puntos 1258

Probar:

set fileText to read POSIX file "/Users/John/Desktop/test.txt" as «class utf8»
fileText contains "nintendo"

1voto

También se puede simplemente usar grep:

grep -qFi nintendo file.txt && echo found

-q = tranquilo, -F = fijo cadenas (deshabilitar regex), -i = no distingue mayúsculas de minúsculas.

Esta sería la búsqueda de manera recursiva (-r) y la lista de los nombres de los archivos coincidentes (-l):

grep -rlFi nintendo ~/Notes

También puede restringir mdfind a determinados atributos de metadatos, pero realmente no ayuda en este caso:

mdfind 'kMDItemTextContent="*nintendo*"i' -onlyin ~/Notes/

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X