Diga 'ls' para ordenar por códigos ASCII regulares, não de forma “inteligente”

11

Eu tenho alguns arquivos e ls os classifica assim:

a
_b
c

mas eu quero ter

_b
a
c

Como posso fazer isso?

    
por Martin Ueding 08.06.2011 / 21:34

3 respostas

9

Como um comando único, você pode fazer isso:

LC_COLLATE=C ls

Ou você pode adicionar export LC_COLLATE="C" ao seu .bashrc para torná-lo permanente (pode ter resultados inesperados sendo classificados em outro lugar).

Mais informações sobre os fóruns do Ubuntu .

    
por misterben 08.06.2011 / 22:35
6

Caso não haja uma maneira interna de fazer isso, você pode usar um substituto simples para sort :

#!/usr/bin/env python

import sys

for i in sorted(sys.stdin):
    sys.stdout.write(i)

Salve-o, por exemplo, em /bin/pysort e torne-o executável ( sudo cp whatever.py /bin/pysort e sudo chmod a+x /bin/pysort ) e execute-o como ls | pysort :

stefano@lenovo:~/t$ ls | pysort
_b
a
c
    
por Stefano Palazzo 08.06.2011 / 21:52
1

ls | sort não faria exatamente o que você precisa?

    
por Philippe De Brouwer 08.06.2011 / 21:53

Tags