Um método muito, muito rápido e fácil de classificar uma camada de shapefile (usando vários campos).
1 - Exporte o shapefile para CSV (selecione um bom separador, como ponto e vírgula) e adicione GEOMETRIA usando "opções de camada" -> "AS WKT"
2 - Abra file.csv com LIBREOFFICE (calc) e use MENU-> DADOS-> CLASSIFICAR (muito intuitivo, poderoso e MUITO RÁPIDO (recursos rápidos e fáceis de classificar 50000 usando 3 colunas como chave de classificação, opções de subida e descida) ei tem um notebook muito lento;))
3 - Salve novamente o arquivo do LIBREOFFICE (calc) como "CSV de texto" (marque "Editar configurações de filtro" e escolha o separador como 'ponto e vírgula', não importa o aviso do libreoffice, salve como CSV e selecione 'ponto e vírgula' como separador)
4 - No Qgis, abra o novo arquivo.csv (e classificado) no menu 'Adicionar camada' -> Adicionar camada de texto delimitadora.
PRÓS: - Muito, muito rápido, classifique de vários campos - Funciona bem com dados codificados em UTF_8
CONTRAS: - Precisa de LIBREOFFICE (mas é um software de código aberto)
Método alternativo para classificar (substitua os pontos 2 e 3 e é o mais rápido) usando o console (BASH)
Abra o console e vá para onde você tem o arquivo.csv
Suponha que você queira classificar o arquivo com a chave:
field6 (desc) + field1 (ascen) + field3 (desce)
então o comando será:
sort -t ';' -k6,6r -k1,1 -k3,3r file.csv> file_sort.csv
NOTAS:
- você pode adicionar -kn, n para cada número de coluna 'n' (campo) que você precisa adicionar à sua "chave de classificação"
- adicionar 'r' após cada n, n será ordenado no modo reverso (descida)
- Deve passar o separador de caracteres usado no arquivo csv com -t param