LINUX.ORG.RU

[regexp] Найти все файлы, в именах которых присутвуют символы не встречающиеся в английской и русской раскладках. Проблемы со служебными символами.


0

0

Сам дошел вот до этого.

find /media/Hardboxed/CORRUPTED/ | egrep [^-_0123456789abcdefghijklmnopqrstuvwxyzабвгдеёжзийклмнопрстуфхцчшщъыьэюяABCDEFGHIJKLMNOPQRSTUVWXYZАБВГДЕЁЖЗИКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ\\\/\!\«\'\#\$\%\&\*\(\)\+\=\~\`\|\?\.\,\:\;\—\№\{\}\]\[\@\^\-]

Проблема в том, что нужный результат не достигается. Присутствуют непонятки со служебными символами. В мане написано, что достаточно поставить перед каждым символом бэкслэш. На деле получается что-то не то. Хотелось бы увидеть работающий вариант, задачу так или иначе обязательно надо решить. Имена файлов лишний раз перекодировались в utf-8, convmv, как оказалось, переименовала не все файлы, их-то как раз и нужно найти.


Ответ на: комментарий от ananas

Неполучается, не находятся как минимум символы псевдографики, вроде ╨, они, насколько мне известно, относятся к знакам препинания.

dopn ()
Ответ на: комментарий от dopn

можешь попробовать вместо [:print:] связку [:alnum:][:punct:][:space:]

а вообще - man 7 regex, man wctype

ananas ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.