L'option -k est ce que vous voulez.
-k 1.4,1.5n -k 1.14,1.15n
Utiliserait les positions de caractère 4-5 dans le premier champ (c'est tout un champ pour une largeur fixe) et trierait numériquement comme première clé.
La deuxième clé serait également les caractères 14-15 dans le premier champ.
(modifier)
Exemple (tout ce que j'ai, c'est DOS/cygwin à portée de main) :
dir | \cygwin\bin\sort.exe -k 1.4,1.5n -k 1.40,1.60r
pour les données :
12/10/2008 01:10 PM 1,564,990 outfile.txt
Trie la liste des répertoires par numéro de mois (pos 4-5) numériquement, puis par nom de fichier (pos 40-60) en sens inverse. Puisqu'il n'y a pas d'onglets, c'est tout le champ 1 à trier.
Attention cependant :
Si vous voulez trier le fichier principalement par le champ 3, et secondairement par le champ 2, vous voulez ceci :
sort -k 3,3 -k 2,2 < inputfile
Pas ceci : sort -k 3 -k 2 < inputfile
qui trie le fichier par la chaîne du début du champ 3 à la fin de la ligne (ce qui est potentiellement unique).
-k, --key=POS1[,POS2] start a key at POS1 (origin 1), end it at POS2
(default end of line)