From: Sergey Matveev Date: Thu, 27 Apr 2023 20:09:21 +0000 (+0300) Subject: Поиск в find X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=9a7015f648c3b55e1c1ff22f8bfd2958dcf2e255;p=stargrave-blog.git Поиск в find https://marc.info/?l=freebsd-current&m=168176556429526&w=2 Неожиданное поведение обнаружили у find, в зависимости от локали: $ touch FOO $ touch bar $ env LANG=C.UTF-8 find . -name '[A-Z]*' -print ./FOO $ env LANG=en_US.UTF-8 find . -name '[A-Z]*' -print ./FOO ./bar Говорят, что надо использовать классы символов: $ LANG=en_US.UTF-8 find . -name '[[:alpha:]]*' -print ./BAR ./foo $ LANG=en_US.UTF-8 find . -name '[[:lower:]]*' -print ./foo Вот правда в FreeBSD find их не понимает для -name. Но можно для -regex: $ LANG=en_US.UTF-8 find -E /etc/rc.d -regex '.*[[:upper:]]+' -print /etc/rc.d/NETWORKING /etc/rc.d/FILESYSTEMS /etc/rc.d/SERVERS /etc/rc.d/DAEMON /etc/rc.d/LOGIN ---