Поиск символов эмодзи в названии файлов

Обсуждение Total Commander. Установка, использование, настройка, решение проблем, скрытые функции. Обсуждение новых версий.

Модераторы: d-view, Моторокер, Avada, CaptainFlint, Nik

Ответить
Necsot
Сообщения: 2
Зарегистрирован: Ср июн 26, 2024 13:03

Поиск символов эмодзи в названии файлов

Сообщение Necsot »

Добрый день! Подскажите, пожалуйста, как можно найти файлы с помощью Total Commander, у которых в имени используются эмодзи? Спасибо
Аватара пользователя
Orion9
Сообщения: 1283
Зарегистрирован: Пн янв 01, 2024 17:18

Сообщение Orion9 »

Necsot
Ну наверное, просто скопировать это символ из имени файла и вставить в строку поиска в окне поиска (F7)

Добавлено спустя 1 час 2 минуты:

Если нужно найти много разных файлов (с разными символами), то может пригодиться плагин UnicodeTest:
https://wincmd.ru/plugring/UnicodeTest.html
В условиях поиска во вкладке "Плагины" необходимо выбрать этот плагин и создать условие (Поле) "Тест юникодности" (Операция) != (Значение) ANSI. Тогда найдутся все файлы, в именах которых есть юникодные символы, включая символы эмодзи.
Аватара пользователя
Monarch-LFV
Сообщения: 363
Зарегистрирован: Пн июл 22, 2019 13:20

Сообщение Monarch-LFV »

Попробуйте поиск с регулярными выражениями. В строке поиска:
[\x1F600-\x1F64F]
Сейчас не за компьютером, протестировать не могу
Necsot
Сообщения: 2
Зарегистрирован: Ср июн 26, 2024 13:03

Сообщение Necsot »

Спасибо
Аватара пользователя
Monarch-LFV
Сообщения: 363
Зарегистрирован: Пн июл 22, 2019 13:20

Сообщение Monarch-LFV »

Necsot
Поизучал тему более детально, в общем Эмодзи располагаются в разных диапазонах юникода, да и, видимо, постоянно добавляются новые. Поэтому найти ВСЕ эмодзи достаточно сложно.
Плюс к этому, регулярки ТС ограничены кодами до 65535 (FFFF) - только четыре символа, в этот диапазон не входят эмодзи. Поэтому самим поиском тотала невозможно найти эмодзи. Но зато есть отличная программа Everything (версия 1.5а), в которой можно задавать такие регулярки.
Есть 2 способа:
1. Найти просто все НЕ ANSI символы (это просто и быстро, но сюда попадут все иероглифы всех таких языков мира, длинные тире, кавычки-елочки и т.п. юникодные символы, то есть ложные результаты). Ввеcти в Everything:

Код: Выделить всё

[^\x00-\x7F\u0400-\u0451\u2116]
2. Ввеcти в Everything:

Код: Выделить всё

[\x{A9}\x{AE}\x{203C}\x{2049}\x{2122}\x{2139}\x{2194}-\x{2199}\x{21A9}\x{21AA}\x{231A}\x{231B}\x{23E9}-\x{23EC}\x{23F0}\x{23F3}\x{24C2}\x{25AA}\x{25AB}\x{25B6}\x{25C0}\x{25FB}-\x{25FE}\x{2600}\x{2601}\x{260E}\x{2611}\x{2614}\x{2615}\x{261D}\x{263A}\x{2648}-\x{2653}\x{2660}\x{2663}\x{2665}\x{2666}\x{2668}\x{267B}\x{267F}\x{2693}\x{26A0}\x{26A1}\x{26AA}\x{26AB}\x{26BD}\x{26BE}\x{26C4}\x{26C5}\x{26CE}\x{26D4}\x{26EA}\x{26F2}\x{26F3}\x{26F5}\x{26FA}\x{26FD}\x{2702}\x{2705}\x{2708}-\x{270C}\x{270F}\x{2712}\x{2714}\x{2716}\x{2728}\x{2733}\x{2734}\x{2744}\x{2747}\x{274C}\x{274E}\x{2753}-\x{2755}\x{2757}\x{2764}\x{2795}-\x{2797}\x{27A1}\x{27B0}\x{2934}\x{2935}\x{2B05}-\x{2B07}\x{2B1B}\x{2B1C}\x{2B50}\x{2B55}\x{3030}\x{303D}\x{3297}\x{3299}\x{1F004}\x{1F0CF}\x{1F170}\x{1F171}\x{1F17E}\x{1F17F}\x{1F18E}\x{1F191}-\x{1F19A}\x{1F201}\x{1F202}\x{1F21A}\x{1F22F}\x{1F232}-\x{1F23A}\x{1F250}\x{1F251}\x{1F300}-\x{1F320}\x{1F330}-\x{1F335}\x{1F337}-\x{1F37C}\x{1F380}-\x{1F393}\x{1F3A0}-\x{1F3C4}\x{1F3C6}-\x{1F3CA}\x{1F3E0}-\x{1F3F0}\x{1F400}-\x{1F43E}\x{1F440}\x{1F442}-\x{1F4F7}\x{1F4F9}-\x{1F4FC}\x{1F500}-\x{1F507}\x{1F509}-\x{1F53D}\x{1F550}-\x{1F567}\x{1F5FB}-\x{1F640}\x{1F645}-\x{1F64F}\x{1F680}-\x{1F68A}\x{1F68C}-\x{1F6C5}]
Это я с этого сайта скопировал все возможные символы и привел через эксель в такую форму (не в ручную конечно :D ). Просто если вставлять диапазоны, которые в заголовке - не получится, также много ложных срабатываний. Но, как я понял, все же здесь не все символы, нет например самоката (U+1F6F4).
В любом случае, найти Эмодзи в названиях всех файлов и папок двумя этими способами можно - вначале второй, потом первый способ.
Аватара пользователя
Orion9
Сообщения: 1283
Зарегистрирован: Пн янв 01, 2024 17:18

Сообщение Orion9 »

Monarch-LFV
Да, работу вы проделали немаленькую :) Тут попадалась еще такая карта:
https://en.wikipedia.org/wiki/Emoji#In_Unicode
В общем, сложно сказать, что вообще считается такими символами и по каким критериям они туда попадают. Думаю, многие просто подразумевают обычные смайлики, когда говорят об эмодзи, ну уж никак не "total of 3,782 emoji" :lol:
Аватара пользователя
Monarch-LFV
Сообщения: 363
Зарегистрирован: Пн июл 22, 2019 13:20

Сообщение Monarch-LFV »

Orion9
Да, карта символов сумасшедшая. Можно, конечно, скопировать в эксель таблицу и автоматизировать получение кодов символов по непустому значению в ячейке. Сделать можно и это не очень сложно, но мне уже лень. Сама поисковая строка получится очень длинной. Я так полагаю, даже автору этой темы это уже не нужно.
Аватара пользователя
Orion9
Сообщения: 1283
Зарегистрирован: Пн янв 01, 2024 17:18

Сообщение Orion9 »

Monarch-LFV
Если бы еще была возможность сделать шаблон поиска, например "Символы эмодзи", то такой шаблон теоретически пригодился бы. Вероятно, есть какие-нибудь пути решения, но стоит ли оно того? :)
Аватара пользователя
Monarch-LFV
Сообщения: 363
Зарегистрирован: Пн июл 22, 2019 13:20

Сообщение Monarch-LFV »

Все-таки не поленился, сделал строку для поиска. Кстати, немного времени заняло - полчаса, спасибо экселю и VBA. Вот что получилось, может кому-нибудь пригодится.

Регулярное выражение для Everything, которое находит файлы и папки, имеющие в своем имени любые ЭМОДЗИ:

Код: Выделить всё

[\x{A9}\x{AE}\x{203C}\x{2049}\x{2122}\x{2139}\x{2194}-\x{2199}\x{21A9}\x{21AA}\x{231A}\x{231B}\x{2328}\x{23CF}\x{23E9}-\x{23F3}\x{23F8}-\x{23FA}\x{24C2}\x{25AA}\x{25AB}\x{25B6}\x{25C0}\x{25FB}-\x{25FE}\x{2600}-\x{2604}\x{260E}\x{2611}\x{2614}\x{2615}\x{2618}\x{261D}\x{2620}\x{2622}\x{2623}\x{2626}\x{262A}\x{262E}\x{262F}\x{2638}-\x{263A}\x{2640}\x{2642}\x{2648}-\x{2653}\x{265F}\x{2660}\x{2663}\x{2665}\x{2666}\x{2668}\x{267B}\x{267E}\x{267F}\x{2692}-\x{2697}\x{2699}\x{269B}\x{269C}\x{26A0}\x{26A1}\x{26A7}\x{26AA}\x{26AB}\x{26B0}\x{26B1}\x{26BD}\x{26BE}\x{26C4}\x{26C5}\x{26C8}\x{26CE}\x{26CF}\x{26D1}\x{26D3}\x{26D4}\x{26E9}\x{26EA}\x{26F0}-\x{26F5}\x{26F7}-\x{26FA}\x{26FD}\x{2702}\x{2705}\x{2708}-\x{270D}\x{270F}\x{2712}\x{2714}\x{2716}\x{271D}\x{2721}\x{2728}\x{2733}\x{2734}\x{2744}\x{2747}\x{274C}\x{274E}\x{2753}-\x{2755}\x{2757}\x{2763}\x{2764}\x{2795}-\x{2797}\x{27A1}\x{27B0}\x{27BF}\x{2934}\x{2935}\x{2B05}-\x{2B07}\x{2B1B}\x{2B1C}\x{2B50}\x{2B55}\x{3030}\x{303D}\x{3297}\x{3299}\x{1F004}\x{1F0CF}\x{1F170}\x{1F171}\x{1F17E}\x{1F17F}\x{1F18E}\x{1F191}-\x{1F19A}\x{1F201}\x{1F202}\x{1F21A}\x{1F22F}\x{1F232}-\x{1F23A}\x{1F250}\x{1F251}\x{1F300}-\x{1F321}\x{1F324}-\x{1F393}\x{1F396}\x{1F397}\x{1F399}-\x{1F39B}\x{1F39E}-\x{1F3F0}\x{1F3F3}-\x{1F3F5}\x{1F3F7}-\x{1F4FD}\x{1F4FF}-\x{1F53D}\x{1F549}-\x{1F54E}\x{1F550}-\x{1F567}\x{1F56F}\x{1F570}\x{1F573}-\x{1F57A}\x{1F587}\x{1F58A}-\x{1F58D}\x{1F590}\x{1F595}\x{1F596}\x{1F5A4}\x{1F5A5}\x{1F5A8}\x{1F5B1}\x{1F5B2}\x{1F5BC}\x{1F5C2}-\x{1F5C4}\x{1F5D1}-\x{1F5D3}\x{1F5DC}-\x{1F5DE}\x{1F5E1}\x{1F5E3}\x{1F5E8}\x{1F5EF}\x{1F5F3}\x{1F5FA}-\x{1F64F}\x{1F680}-\x{1F6C5}\x{1F6CB}-\x{1F6D2}\x{1F6D5}-\x{1F6D7}\x{1F6DC}-\x{1F6E5}\x{1F6E9}\x{1F6EB}\x{1F6EC}\x{1F6F0}\x{1F6F3}-\x{1F6FC}\x{1F7E0}-\x{1F7EB}\x{1F7F0}\x{1F90C}-\x{1F93A}\x{1F93C}-\x{1F945}\x{1F947}-\x{1F9FF}\x{1FA70}-\x{1FA7C}\x{1FA80}-\x{1FA88}\x{1FA90}-\x{1FABD}\x{1FABF}-\x{1FAC5}\x{1FACE}-\x{1FADB}\x{1FAE0}-\x{1FAE8}\x{1FAF0}-\x{1FAF8}]
Всего в этой строке поиска 1386 символов эмодзи.
Аватара пользователя
Orion9
Сообщения: 1283
Зарегистрирован: Пн янв 01, 2024 17:18

Сообщение Orion9 »

Monarch-LFV
Остается сделать только кнопку или em_ команду для быстрого и удобного поиска в текущем каталоге.
Аватара пользователя
Monarch-LFV
Сообщения: 363
Зарегистрирован: Пн июл 22, 2019 13:20

Сообщение Monarch-LFV »

Orion9
Зачем? Это же для Everything, который ищет сразу по всем дискам/папкам и т.п., т.е. везде там, где закэшировано. Если установить версию 1.5а, которая сильно отличается от 1.4, то там можно с помощью панели Folders сужать директорию поиска. Вообще, проще сохранить шаблон в Everything в закладках и все, что я и сделал.
А в ТС, к сожалению, TRegExpr не поддерживает больше 4 символов в фигурных скобках, поэтому можно для него сделать лишь намного урезанную версию (далеко не все эмодзи будут найдены), в обычном поиске ТС с регулярными выражениями:

Код: Выделить всё

[\x{A9}\x{AE}\x{203C}\x{2049}\x{2122}\x{2139}\x{2194}-\x{2199}\x{21A9}\x{21AA}\x{231A}\x{231B}\x{2328}\x{23CF}\x{23E9}-\x{23F3}\x{23F8}-\x{23FA}\x{24C2}\x{25AA}\x{25AB}\x{25B6}\x{25C0}\x{25FB}-\x{25FE}\x{2600}-\x{2604}\x{260E}\x{2611}\x{2614}\x{2615}\x{2618}\x{261D}\x{2620}\x{2622}\x{2623}\x{2626}\x{262A}\x{262E}\x{262F}\x{2638}-\x{263A}\x{2640}\x{2642}\x{2648}-\x{2653}\x{265F}\x{2660}\x{2663}\x{2665}\x{2666}\x{2668}\x{267B}\x{267E}\x{267F}\x{2692}-\x{2697}\x{2699}\x{269B}\x{269C}\x{26A0}\x{26A1}\x{26A7}\x{26AA}\x{26AB}\x{26B0}\x{26B1}\x{26BD}\x{26BE}\x{26C4}\x{26C5}\x{26C8}\x{26CE}\x{26CF}\x{26D1}\x{26D3}\x{26D4}\x{26E9}\x{26EA}\x{26F0}-\x{26F5}\x{26F7}-\x{26FA}\x{26FD}\x{2702}\x{2705}\x{2708}-\x{270D}\x{270F}\x{2712}\x{2714}\x{2716}\x{271D}\x{2721}\x{2728}\x{2733}\x{2734}\x{2744}\x{2747}\x{274C}\x{274E}\x{2753}-\x{2755}\x{2757}\x{2763}\x{2764}\x{2795}-\x{2797}\x{27A1}\x{27B0}\x{27BF}\x{2934}\x{2935}\x{2B05}-\x{2B07}\x{2B1B}\x{2B1C}\x{2B50}\x{2B55}\x{3030}\x{303D}\x{3297}\x{3299}]
Для этого можно сделать кнопку, но, думаю, она бессмысленна.
Аватара пользователя
Orion9
Сообщения: 1283
Зарегистрирован: Пн янв 01, 2024 17:18

Сообщение Orion9 »

Для этого можно сделать кнопку, но, думаю, она бессмысленна.
Согласен, что смысла не много. Когда я говорил о кнопке, я имел в виду вызов Everything с параметрами командной строки, чтобы сразу все автоматом запускалось. Но вы правы: пользы от такой автоматизации практически никакой :)
Ответить