Étudiez l'utilitaire POSIX sort
en ignorant les options héritées. Ou étudier le programme GNU sort
; il a même plus d'options que POSIX sort
.
Vous devez choisir entre des champs de largeur fixe comme suggéré par Neil Butterworth dans ses champs answer et width-width. Vous devez décider quel caractère sépare les champs de largeur variable. Vous devez décider des modes de tri à prendre en charge pour chaque champ (chaîne, chaîne pliée, chaîne téléphonique, entier, virgule flottante, date, etc.) ainsi que la direction de tri (avance/retour ou montée/descente). Les 'options indépendantes' signifient que vous pouvez avoir différents critères de tri pour différents champs. C'est-à-dire que vous pouvez organiser le tri du champ 1 dans l'ordre ascendant des chaînes, le tri du champ 3 dans l'ordre décroissant de l'entier et le tri du champ 9 dans l'ordre croissant des dates.
Notez que lors du tri, le critère principal est le premier champ clé spécifié. Lorsque deux lignes sont comparées, s'il existe une différence entre le premier champ clé dans les deux lignes, les champs clés suivants ne sont jamais pris en compte. Lorsque deux rangées sont identiques dans le premier champ clé, le critère du second champ clé détermine l'ordre relatif; alors, si les deuxièmes champs clés sont les mêmes, le troisième champ clé est consulté, et ainsi de suite. S'il n'y a plus de champs clés spécifiés, le critère de tri par défaut habituel est "toute la ligne d'entrée dans l'ordre ascendant des chaînes". Un tri stable préserve l'ordre relatif de deux lignes dans les données d'origine qui sont identiques lorsque comparées à l'aide des critères de champ clé (au lieu d'utiliser la comparaison par ligne complète par défaut).
Il peut être utile de savoir dans quel contexte la question est posée, comme dans le chapitre qui l'entoure. Merci – anderstornvig
Le chapitre est appelé "pointeurs vers les fonctions", il explique comment écrire un programme de tri qui peut trier par des règles différentes en passant la fonction appropriée pour la comparaison à travers le pointeur de fonction. Il y a aussi des commutateurs comme -r pour reverse, -f pour fold, -d pour directory etc ... – paleman