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". Attention, le forum rencontre actuellement quelques difficultés. En cas d'erreur 502, il ne faut pas re-valider l'envoi d'un message ou l'ouverture d'une discussion, au risque de créer un doublon.

La section divers se réorganise ! De nouvelles sous-sections à venir. (plus d'infos + donner son avis)

#1 Le 21/03/2013, à 09: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, à 10:48)

Hors ligne

#2 Le 21/03/2013, à 09: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, à 09:56)

Hors ligne

#3 Le 21/03/2013, à 10: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, à 10: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, à 10: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

Hors ligne

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

pingouinux

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

@Watael : Bien vu

Hors ligne

#7 Le 21/03/2013, à 10: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 ↑