Estou meio enraizado com a ordem de classificação do Windows na minha cabeça. Infelizmente, o Windows realmente não permite uma maneira fácil de alterá-lo.
Existe uma maneira de emular essa ordem de classificação usando ferramentas unix?
Um exemplo se cada um for um nome de arquivo
{"Ie4 01", "Ie4!01", "Ie4_01", "Ie4_128", "Ie5", "Ie6", "Ie401sp2","Ie501sp2"}
ordem de classificação correta
Ie4 01
Ie4!01
Ie4_01
Ie4_128
Ie5
Ie6
Ie401sp2
Ie501sp2
A classificação de versão do GNU sort (
-V
) parece fornecer essa saída:Caso alguém queira separar pastas e arquivos como o Windows, você pode fazer isso:
Se você não é específico sobre a ordenação dos caracteres especiais,
zsh
o qualificador glob de classificação numérica de 's se aproxima:Configurar
somente zsh
com ls
As bandeiras
ls
são:-1
) -- simplesmente para facilitar a visualização-d
)-f
ou-U
)Os qualificadores zsh glob dizem:
*(n/)
- expandir para a lista de diretórios/
, ordenados numericamente*(n^/)
- expandir para a lista de itens que não^
são diretórios, ordenados numericamenteMenciono uma solução zsh apenas porque você pode manipular os resultados com mais facilidade, sem ter que se preocupar em citar nomes de arquivos ou delimitá-los com nulos. Por exemplo: