Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites".
Test de l'ISO d'Ubuntu francophone : nous avons besoin de testeurs pour la version francophone d'Ubuntu 14.04. Liens et informations ici.

#1 Le 21/03/2013, à 10:19

Archonic

[Résolu] Tri d'un fichier dans les sens ascendant et descendant

Bonjour,

J'étudie actuellement le manuel "Linux essentials" fourni par Linup et que vous trouverez ici : https://www.lpi.org/exam-preparation/self-study

A la page 114, l'exercice 8.13, on me demande de trier un fichier de la manière suivante:
- Les clubs sportifs par ordre ascendant
- Au sein de ces clubs, trier les numéros par ordre descendant.

Et biensûr, à la fin du document ne figure pas la solution ... sinon, ce serait moins drôle!

Je vous copie ici le fichier de base (que vous trouverez à la page 112):

Smith:Herbert:Pantington AC:123:Men
Prowler:Desmond:Lameborough TFC:13:Men
Fleetman:Fred:Rundale Sportsters:217:Men
Jumpabout:Mike:Fairing Track Society:154:Men
de Leaping:Gwen:Fairing Track Society:26:Ladies
Runnington:Vivian:Lamborough TFC:117:Ladies
Sweat:Susan:Rundals Sportsters:93:Ladies
Runnington:Kathleen:Lamborough TFC:119:Ladies
Longshanks:Loretta:Pantington AC:55:Ladies
O'Finnan:Jack:Fairing Track Society:45:Men
Oblomovsky:Katie:Rundale Sportsters:57:Ladies

Voici la commande que je pense être la plus proche de la solution:

sort -t: -k4 -n -r participants0.dat | sort -t: -k3

Et le résultat, imparfait, que j'obtiens:

Jumpabout:Mike:Fairing Track Society:154:Men
de Leaping:Gwen:Fairing Track Society:26:Ladies
O'Finnan:Jack:Fairing Track Society:45:Men
Runnington:Vivian:Lamborough TFC:117:Ladies
Runnington:Kathleen:Lamborough TFC:119:Ladies
Prowler:Desmond:Lameborough TFC:13:Men
Smith:Herbert:Pantington AC:123:Men
Longshanks:Loretta:Pantington AC:55:Ladies
Fleetman:Fred:Rundale Sportsters:217:Men
Oblomovsky:Katie:Rundale Sportsters:57:Ladies
Sweat:Susan:Rundals Sportsters:93:Ladies

Comme vous pouvez le voir, les clubs sont effectivement triés dans le bon sens mais l'option "-n" semble avoir été oubliée dans l'aventure.

Pourriez-vous, s'il vous plait, m'aider à résoudre ce problème?

Un grand merci d'avance pour votre aide.

Dernière modification par Archonic (Le 21/03/2013, à 11:48)

Hors ligne

#2 Le 21/03/2013, à 10:55

pingouinux

Re : [Résolu] Tri d'un fichier dans les sens ascendant et descendant

Bonjour,
Ceci semble marcher :

$ sort -t: -k4 -nr participants0.dat | sort -t: -s -k3,3
Jumpabout:Mike:Fairing Track Society:154:Men
O'Finnan:Jack:Fairing Track Society:45:Men
de Leaping:Gwen:Fairing Track Society:26:Ladies
Runnington:Kathleen:Lamborough TFC:119:Ladies
Runnington:Vivian:Lamborough TFC:117:Ladies
Prowler:Desmond:Lameborough TFC:13:Men
Smith:Herbert:Pantington AC:123:Men
Longshanks:Loretta:Pantington AC:55:Ladies
Fleetman:Fred:Rundale Sportsters:217:Men
Oblomovsky:Katie:Rundale Sportsters:57:Ladies
Sweat:Susan:Rundals Sportsters:93:Ladies

Ajouté : Il y a sans doute une faute de frappe dans le nom du dernier club

Dernière modification par pingouinux (Le 21/03/2013, à 10:56)

En ligne

#3 Le 21/03/2013, à 11:14

Archonic

Re : [Résolu] Tri d'un fichier dans les sens ascendant et descendant

Bonjour,

Merci pour cette aide rapide.  Effectivement, cela semble fonctionner (et j'ai corriger la faute de frappe).

J'ai fait l'essai avec "-k3,3" et un autre avec "-k3"

Les résultats ne sont pas identiques.  Pourquoi faut-il préciser une colonne de fin dans ce cas-ci?

Il me semblait avoir compris que cela était nécessaire seulement lorsque les colonnes étaient séparées par des espaces et non des séparateurs ":".

Hors ligne

#4 Le 21/03/2013, à 11:16

Watael

Re : [Résolu] Tri d'un fichier dans les sens ascendant et descendant

salut,

une seule commande suffit

sort -t':' -k3,3 -k4,4nr fichier

eval, c'est mal.

Hors ligne

#5 Le 21/03/2013, à 11:20

pingouinux

Re : [Résolu] Tri d'un fichier dans les sens ascendant et descendant

Voir aussi Lamborough / Lameborough.

-k3    : tri à partir du 3ème champ jusqu'à la fin de la ligne
-k3,3 : tri sur le 3ème champ uniquement

En ligne

#6 Le 21/03/2013, à 11:22

pingouinux

Re : [Résolu] Tri d'un fichier dans les sens ascendant et descendant

@Watael : Bien vu

En ligne

#7 Le 21/03/2013, à 11:41

Archonic

Re : [Résolu] Tri d'un fichier dans les sens ascendant et descendant

pingouinux a écrit :

Voir aussi Lamborough / Lameborough.

-k3    : tri à partir du 3ème champ jusqu'à la fin de la ligne
-k3,3 : tri sur le 3ème champ uniquement

Le fait d'indiquer le séparateur ":" ne dispense pas de cette précision : seulement telle ou telle colonne?

Pour "-k4" ça fonctionne et donne le même résultat que "-k4,4".  La différence vient-elle de la présence d'espaces dans la colonne 3?

@Watael : J'avais essayé cette solution mais sans préciser "3,3" et "4,4" (donc, simplement "3" et "4") ça ne fonctionnait alors pas.  Je suppose que la raison est identique à ma question des deux lignes précédentes.

Hors ligne

Haut de page ↑