Я использую подчеркивание для обозначения специальных каталогов, которые должны идти вверх. В моей папке проектов есть proj_a, proj_b и _old_projects. Бесполезно, если эта папка находится в o-проектах.
Мартин Юдинг
Ответы:
9
В качестве одноразовой команды вы можете сделать это:
LC_COLLATE=C ls
Или вы можете добавить export LC_COLLATE="C"в свой .bashrc, чтобы сделать его постоянным (может иметь неожиданные результаты сортировки в другом месте).
Я думаю, что я просто псевдоним ls с этим, чтобы он не имел побочных эффектов.
Мартин Юдинг
Это не работает для меня. Я получил это -> paste.pocoo.org/show/403333 (это немецкий, но это не должно иметь значения)
dAnjou
2
@dAnjou LC_COLLATE=Cls устанавливает традиционный порядок сортировки POSIX, то есть ASCII, в котором заглавные буквы ставятся перед подчеркиванием. Чтобы сортировка подчеркиваний выполнялась в верхнем регистре, вам нужно попасть под капот и создать собственное определение локали в / usr / share / i18n / locales.
Мистербен
2
Возможно, это работало в прошлом, но это не работает на Ubuntu 12.04.
Микель
1
Начиная с Ubuntu 14.04, LC_COLLATE=C lsне работает, но LC_ALL=C lsработает.
jwodder
6
На случай, если для этого нет встроенного способа, вы можете использовать простую замену sort:
#!/usr/bin/env python
import sys
for i in sorted(sys.stdin):
sys.stdout.write(i)
Сохраните его, например, в /bin/pysortи сделайте его исполняемым ( sudo cp whatever.py /bin/pysortи sudo chmod a+x /bin/pysort), и запустите его как ls | pysort:
Я бы, наверное, положил, ~/binно хороший запасной вариант. Вероятно, лучше использовать globbing внутри python, поскольку вывод ls может быть странным, если имя файла содержит символ новой строки.
Мартин Юдинг
1
ls | sortне будет делать именно то, что вам нужно?
Ответы:
В качестве одноразовой команды вы можете сделать это:
LC_COLLATE=C ls
Или вы можете добавить
export LC_COLLATE="C"
в свой .bashrc, чтобы сделать его постоянным (может иметь неожиданные результаты сортировки в другом месте).Больше информации на форумах Ubuntu .
источник
LC_COLLATE=C
ls устанавливает традиционный порядок сортировки POSIX, то есть ASCII, в котором заглавные буквы ставятся перед подчеркиванием. Чтобы сортировка подчеркиваний выполнялась в верхнем регистре, вам нужно попасть под капот и создать собственное определение локали в / usr / share / i18n / locales.LC_COLLATE=C ls
не работает, ноLC_ALL=C ls
работает.На случай, если для этого нет встроенного способа, вы можете использовать простую замену
sort
:Сохраните его, например, в
/bin/pysort
и сделайте его исполняемым (sudo cp whatever.py /bin/pysort
иsudo chmod a+x /bin/pysort
), и запустите его какls | pysort
:источник
~/bin
но хороший запасной вариант. Вероятно, лучше использовать globbing внутри python, поскольку вывод ls может быть странным, если имя файла содержит символ новой строки.ls | sort
не будет делать именно то, что вам нужно?источник