Скажите `ls` сортировать по обычным кодам ASCII, а не" разумно "
У меня есть пара файлов и ls
сортирует их так:
a
_b
c
но я хочу иметь
_b
a
c
Как я могу это сделать?
3 ответа
Решение
В качестве одноразовой команды вы можете сделать это:
LC_COLLATE=C ls
Или вы можете добавить export LC_COLLATE="C"
на ваш.bashrc, чтобы сделать его постоянным (может иметь неожиданные результаты сортировки в другом месте).
Больше информации на форумах Ubuntu.
На случай, если для этого нет встроенного способа, вы можете использовать простую замену 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
:
stefano@lenovo:~/t$ ls | pysort
_b
a
c