Dependendo de como você deseja que as partes I
e X
e assim por diante sejam manipuladas, talvez seja possível usar apenas o comando sort
como:
find . -type f | sort -n
Se essa não for a ordem de classificação desejada, você terá que nos fornecer mais detalhes (e, idealmente, nos mostre a saída desejada do seu exemplo).
Dado que você deseja agrupar o início dos nomes juntos, podemos especificar o campo-chave a ser classificado. Como a saída do find começará com ./{id}
, com os próximos dois caracteres (aparentemente) relacionados em um lote juntos, podemos começar a classificação a partir do quinto caractere on line, especificando a chave de classificação:
find . -type f | sort -n -k 1.5
-k
para classificação permite que você especifique a chave na qual classificar, aqui estamos classificando no primeiro campo, mas iniciando no quinto caractere e usando -n
para ordenar numericamente
Se você quiser apenas o diretório atual, você pode usar -maxdepth
como em:
find . -maxdepth 1 -type f | sort -n -k 1.5
se você quiser que ele seja portátil:
find . -path '*/*/*' -prune -o -type f | sort -n -k 1.5