¿Usar mdfind para evaluar el contenido de texto de un archivo específico?

1

Me gustaría escribir un applecript para evaluar si un archivo en particular contiene una cadena específica (tal vez como parte de una declaración if ... then). Quiero invocar un comando de shell usando mdfind para hacer esto y soy consciente de cómo restringir mdfind para encontrar archivos que contengan una cadena específica solo en directorios específicos:

mdfind -onlyin /Users/viktor/Desktop/ nintendo

Este comando encontrará todos los archivos que contengan la cadena "nintendo". ¿Es posible consultar de alguna manera un archivo en lugar de un directorio? ¿Y devuelve verdadero / falso o el archivo para indicar que la cadena está en el contenido de texto del archivo? Poner un nombre de archivo después de "-onlyin" no funciona, por supuesto ...

    
pregunta viktor lakics 14.04.2013 - 08:58

2 respuestas

1

También puedes usar grep:

grep -qFi nintendo file.txt && echo found

-q = quiet, -F = cadenas fijas (deshabilitar regex), -i = mayúsculas y minúsculas.

Esto buscaría recursivamente (-r) y listaría los nombres de los archivos coincidentes (-l):

grep -rlFi nintendo ~/Notes

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

mdfind 'kMDItemTextContent="*nintendo*"i' -onlyin ~/Notes/
    
respondido por el user495470 14.04.2013 - 14:13
1

Prueba:

set fileText to read POSIX file "/Users/John/Desktop/test.txt" as «class utf8»
fileText contains "nintendo"
    
respondido por el adayzdone 14.04.2013 - 12:57

Lea otras preguntas en las etiquetas