Use sorta -kopção para classificar por (várias) colunas de uma vez:
$ sort -k1,1 -k2n input
A 1-2
A 3-4
A 6-8
B 5-9
B 7-10
-k1,1classifica pela primeira coluna primeiro e depois -k2npela segunda¹ numericamente quando a primeira coluna foi ligada, para que você obtenha sua saída na ordem que deseja: classificando pelo primeiro elemento da segunda coluna, somente se o primeiro elemento da coluna for o mesmo.
Ao classificar numericamente, ele examinará o campo apenas até que ele pare de ser um número, de modo que você faça uma comparação apenas do primeiro elemento dele.
Quando as duas chaves comparam o mesmo, sortcompara as linhas completas lexicamente como uma comparação de último recurso. Por exemplo, em A 1-10vs A 1-2, as primeiras chaves são idênticas ( Astring) e a segunda chave também (ambas são tratadas como o número 1); portanto, sortcompara A 1-10vsA 1-2 lexicamente e a última é maior conforme as 2sortes seguintes 1. A implementação do GNU de sorttem uma -Vopção ou Vsinalizador de chave para executar uma classificação de versão , que é como uma comparação lexical, exceto que as seqüências de dígitos decimais nas seqüências de caracteres são comparadas numericamente, então sort -k1,1 -k2Vseria ordenada A 1-10depois A 1-2porque o 10número é maior que 2.
¹ tecnicamente, -k2significa a parte da linha que começa com o segundo campo (após a primeira transição de um não-espaço em branco para um espaço em branco) e termina no final da linha, mas com o nsinalizador é equivalente a -k2,2napenas a parte principal que constitui um número é considerado.