Чи порушено порівняльне відношення до випадку mdfind?


1

Я використовую mdls та mdfind в скриптах для автоматизації відтворення музичних файлів. Нещодавно я помітив, що певні файли відсутні у очікуваних результатах пошуку, і я відстежив це до проблеми чутливості до справ.

Я використовую синтаксис запитів, подібний до kMDItemTitle == '*[search term]*'c. Символ "c", що використовується в списку, використовується для пошуку нечутливого до регістру пошуку.

Інтернет-документація пропонує kMDItemTitle ==[c] '*[search term]*як можливість, але це також не працює.

Ось кілька прикладів з мого командного рядка:

 mdfind -onlyin . 'kMDItemContentTypeTree == "public.audio" && kMDItemTitle == "*Thrill*"'
./Music/Sia/Cheap Thrills (feat. Sean Paul) - Single/01 Cheap Thrills (feat. Sean Paul).m4a
./Music/Michael Jackson/Thriller [Bonus Tracks]/17 Voice-Over Session from Thriller.m4a
./Music/Michael Jackson/Thriller [Bonus Tracks]/04 Thriller.m4a
./Music/J.J. Cale/The Road to Escondido/08 Hard to Thrill.m4a

 mdfind -onlyin . 'kMDItemContentTypeTree == "public.audio" && kMDItemTitle == "*thrill*"c'

 mdfind -onlyin . 'kMDItemContentTypeTree == "public.audio" && kMDItemTitle == "*THRILL*"c'

 mdfind -onlyin . 'kMDItemContentTypeTree == "public.audio" && kMDItemTitle ==[c] "*THRILL*"'

Це лускато - і навіть не базується на файлі. Наприклад, якщо я заміню "трепет" на "дешевий", він знаходить файл Sia "Cheap Thrills". Я думаю, я спробую переіндексувати прожектор і побачити, що станеться ...
jmhindle

Повторне оновлення бази даних прожекторів не змінило результатів.
jmhindle

1
Використання модифікатора 'cd' в кінці рядка для kMDItemTitle виправило проблему. Це заплутано, оскільки команда 'd' повинна просто ігнорувати діакритичні дані (тобто символи-акценти, що відповідають нееквівалентним еквівалентам).
jmhindle

Відповіді:


1

Це працює для мене (Сьєрра). Зокрема, форма, якою ви працювали:

$ mdfind -onlyin . 'kMDItemContentTypeTree == "public.audio" && kMDItemTitle == "*ciao*"'c
...[non-album tracks]/Bella ciao.mp3
...Unreleased/Bella Ciao.mp3

Мені не пощастило з іншою формою ( ... "==[c] ... "). Документи, з якими ви пов’язані, були з 2011 року; Я знайшов посилання з 2014 року, в яких використовується форма "ваша", тому схоже, що онлайн-документи старі та неправильні! На жаль, це говорить про те, що з вашою системою щось не так, а не з вашими запитами. Вибачте, я не впевнений, яким буде наступний крок.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.