С Новым годом! Форум программистов, компьютерный форум, киберфорум
Shell, Bash
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
2 / 2 / 1
Регистрация: 30.01.2016
Сообщений: 66

Поиск файлов с любыми Unicode символами в имени

05.02.2016, 15:35. Показов 2378. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!

Мне нужно найти все файлы в имени которых в любом месте содержаться символы $'\u0001' - $'\u001F'

sudo find / -name (а что здесь писать?)

Спасибо!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.02.2016, 15:35
Ответы с готовыми решениями:

Поиск файлов с одинаковыми символами в имени и перенос их в отдельную папку
здравствуйте форумчане. появилась такая проблемка: есть программа которая записывает телефонные звонки (формат .wav) и помещает их в одну...

Выдаёт ошибку mbstowcs() , и так с любыми попытками конвертации с anci и с unicode
#include <iostream> using namespace std; void main() { char buffer = "mbstowcs converts ANSI-string to Unicode-string"; //...

Поиск файлов по части имени \ имени
var SR: TSearchRec; Folder: String; begin Folder := 'D:\'; Folder := IncludeTrailingPathDelimiter(Folder); if...

9
Эксперт NIX
 Аватар для Marinero
2796 / 2039 / 682
Регистрация: 02.03.2015
Сообщений: 6,509
05.02.2016, 17:24
Я бы использовал "*[^[:print:]]*", но не знаю поддерживает ли это Ваша версия bash
0
2 / 2 / 1
Регистрация: 30.01.2016
Сообщений: 66
05.02.2016, 18:07  [ТС]
Спасибо, а если мне, например, нужно найти все файлы в имени которых в любом месте содержаться символы в диапазоне от $'\u07B2' до $'\u07BF' и символ $'\u001F' — как это написать?
0
Эксперт NIX
 Аватар для Marinero
2796 / 2039 / 682
Регистрация: 02.03.2015
Сообщений: 6,509
05.02.2016, 19:20
Цитата Сообщение от cave-canem Посмотреть сообщение
и символ
Тут «и», не «или»?
Раньше поддерживалась нотация [\u07B2-\u07BF] (по крайней мере [\х01-\х30] точно), но сейчас как-то не совсем правильно срабатывает. Что касается Вашего далеко «задиапазонного» интервала, то, боюсь придется применять какие-то совсем не стандартные методы: заменять на что-то, а потом это «что-то» искать, например. Или, например, вообще из символьного представление переводить в цифровое… Надо думать, короче.
0
2 / 2 / 1
Регистрация: 30.01.2016
Сообщений: 66
05.02.2016, 22:05  [ТС]
Что-то я совсем запутался.

Возьмём задачу проще:
Создаём на на рабочем столе файл:
Bash
1
> ~/Desktop/$'\u001B'
Создаётся; виден на рабочем столе, и, например, в Midnight Commander
Bash
1
2
ls -ahil ~/Desktop/$'\u001B'
15657448 -rw-r--r--  1 ES  staff     0B  5 фев 20:08 /Users/ES/Desktop/?
Пытаемся его найти (http://www.regular-expressions... ckets.html)
Bash
1
find ~/Desktop/ -name "*[=$'\u001B'=]"
Находится много чего, но не мой созданный файл!

Если же:
Bash
1
2
3
find ~/Desktop/ -name "$'\u001B'"
find ~/Desktop/ -name $'u\001B'
find ~/Desktop/ -name "\u001B"
Вообще ничего не находят!

Если:
Bash
1
2
3
name=$'\u0001B'
find ~/Desktop/ -name $name
/Users/ES/Desktop//
Находит!

Что я делаю не так?
0
Эксперт NIX
 Аватар для Marinero
2796 / 2039 / 682
Регистрация: 02.03.2015
Сообщений: 6,509
05.02.2016, 23:40
Цитата Сообщение от cave-canem Посмотреть сообщение
find ~/Desktop/ -name $'u\001B'
Так конечно не найдет… С какого перепуга Вы символы местами поменяли?
Bash
1
find ~/Desktop/ -name $'\u001B'
0
2 / 2 / 1
Регистрация: 30.01.2016
Сообщений: 66
06.02.2016, 00:39  [ТС]
Спасибо!
Вот я балбес!

А как насчет поиска файлов с именами, скажем, содержащие символы в диапазоне \u0010 — \u001F ?

Добавлено через 22 минуты
Сам дотумкал
Bash
1
find ~/Desktop/ -name *[$'\u0010'-$'\u001F']
Добавлено через 23 минуты
Конечно же:
Bash
1
find ~/Desktop/ -name *[$'\u0010'-$'\u001F']*
0
Эксперт NIX
 Аватар для Marinero
2796 / 2039 / 682
Регистрация: 02.03.2015
Сообщений: 6,509
06.02.2016, 01:07
Боюсь что так
Bash
1
find ~/Desktop/ -name \*[$'\u0010'-$'\u001F']\*
0
2 / 2 / 1
Регистрация: 30.01.2016
Сообщений: 66
06.02.2016, 02:01  [ТС]
Bash
1
find ~/Desktop/ -name *[$'\u0010'-$'\u001F']*
То же работает

Добавлено через 7 минут
А что делать, если нужно два диапазона, например $'\u0005'—$'\u0010' и $'\u0020'—$'u\002F' ?

Добавлено через 36 минут
0
Эксперт NIX
 Аватар для Marinero
2796 / 2039 / 682
Регистрация: 02.03.2015
Сообщений: 6,509
06.02.2016, 03:05
Все же стоит хоть иногда man'ы читать…
Bash
1
2
-name \*[$'\u0005'—$'\u0010'$'\u0020'—$'\u002F']\*
-name \*[$'\u0005'—$'\u0010']\* -o -name \*[$'\u0020'—$'\u002F']\*
Добавлено через 12 минут
Цитата Сообщение от cave-canem Посмотреть сообщение
То же работает
Coмневаюсь… Просто у Вас в текущей папке нет или 1 файл подходящий условию. Просто если не экранировать «*» — bash заменит это выражение подходящим именем файла(или несколькими если подходят несколько) из текущей папки.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.02.2016, 03:05
Помогаю со студенческими работами здесь

Рекурсивный поиск файлов пропускает UNICODE имена
Помогите, прошу вас! void searchFiles(const char * dirn) { char dirnPath; sprintf(dirnPath, "%s\\*", dirn); ...

Регулярное выражение для получения строки с любыми символами по бокам
Есть выражение выбирающее айди меток: Regex rx = new Regex(@"<label id=""(.*)"" class=""ai-option"">" + str +...

Поиск файлов по имени
Как найти на диске файл зная только его имя?

Поиск файлов по имени
На форме два компонента Edit, один Memo и одна кнопка. В первую Edit (EdLookIn) вводиться имя файла, который надо найти, во-вторую Edit...

Строка с unicode символами (Python 2.7)
Без лишних слов, есть строка stroka = '\u041f\u0440\u0438\u0432\u0435\u0442' Как ее перевести в unicode?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru