О wildcards
Jun. 1st, 2018 11:43 amНенавижу локале-специфичную сортировку. Теперь для того, чтобы объединить в кучку несколько файлов, так чтобы файл 04.something.txt оказался перед 041.otherthing.txt нужно писать
вместо
cat `LC_COLLATE=C ls *.txt`
вместо
cat *.txt
no subject
Date: 2018-06-01 09:11 am (UTC)Поясняю - мне нужно именно чтобы точка сортировалась раньше цифр. А при LC_COLLATE=ru_RU.utf-8 она этого не делает - сортируется позже и цифр, и латинских букв.
no subject
Date: 2018-06-01 09:20 am (UTC)no subject
Date: 2018-06-01 09:22 am (UTC)no subject
Date: 2018-06-01 02:00 pm (UTC)no subject
Date: 2018-06-01 02:09 pm (UTC)Не суть.
no subject
Date: 2018-06-01 02:14 pm (UTC)no subject
Date: 2018-06-01 03:56 pm (UTC)no subject
Date: 2018-06-01 04:43 pm (UTC)no subject
Date: 2018-06-01 09:23 am (UTC)no subject
Date: 2018-06-01 10:12 am (UTC)cat `ls -v *.txt`no subject
Date: 2018-06-01 10:26 am (UTC)И нет, это не version sort.
no subject
Date: 2018-06-01 11:48 am (UTC)$ LC_ALL=cs_CZ.UTF-8 bash -c 'echo *'log0Ah log0Bh log0Dh log0Ch
(Там ch -- это как особая буква.)
no subject
Date: 2018-06-01 12:00 pm (UTC)Именно в этом месте строго словарный порядок нужен реже, чем воспроизводимость результата вне зависимости от локали.
И именно в этом месте временная смена LC_COLLATE стоит целого процесса.
no subject
Date: 2018-06-09 09:41 am (UTC)no subject
Date: 2018-06-09 10:07 am (UTC)no subject
Date: 2018-06-09 10:11 am (UTC)То есть нам надо допустить формат записи шестнадцатиричного числа такой, чтобы U+FEFF в нем был допустим как часть суффикса, обозначающего систему счисления.
no subject
Date: 2018-06-01 03:18 pm (UTC)И то, в общем, я бы и в этой ситуации предпочел, чтобы ежи, ёлки и палки сортировались именно так, а не
zsh% echo *
ежи палки ёлки
no subject
Date: 2018-06-01 05:09 pm (UTC)Поэтому лучше бы уж там, где сортировка не является основной работой, сортировали не по-человечески, а по-машинному - по значениям байтов.
no subject
Date: 2018-06-02 07:18 am (UTC)no subject
Date: 2018-06-02 03:01 pm (UTC)Файловая система DOS’а была регистронезависимая, поэтому при правильно настроенной локали смысла в маленькой букве «х» не было. Другое дело, что локаль была правильно настроена далеко не у всех, потому что никаких сколько-нибудь заметных преимуществ это не давало.
А эффект был такой, что файл пропадал из листинга каталога, но цепочка кластеров оставалась неосвобождённой. Сборщик мусора chkdsk (позже — scandisk) на это ругался и предлагал либо восстановить, либо удалить совсем.
Алсо, в Unicode буква Ё тоже находится где попало по отношению к остальному алфавиту, и ёж точно так же уползает при сортировке по кодпоинтам или значениям байтов.
no subject
Date: 2018-06-02 07:36 pm (UTC)no subject
Date: 2018-06-03 05:59 am (UTC)country=007,866,путь\к\country.sysкириллица тоже апперкейсилась. Если мне не изменяет память.no subject
Date: 2018-06-03 06:12 am (UTC)no subject
Date: 2018-06-03 09:28 pm (UTC)Кажется, я читал (когда пользовался MSDOS 6.22) две книжки по DOS, но ни одна это не упоминала.
no subject
Date: 2018-06-09 09:42 am (UTC)no subject
Date: 2018-06-09 11:04 am (UTC)(все три покупал не я, авторов и точные названия тоже не помню)
no subject
Date: 2018-06-09 11:15 am (UTC)Короче, я читал один Tech Help. Правда в 95 году еще прикупил в Голландии Advanced Assemble Language, но она мне почти не пригодилась, так как я как раз уже начал с DOS-а на Linux уходить.
no subject
Date: 2018-06-09 11:25 am (UTC)