Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente | Prochaine révision Les deux révisions suivantes | ||
doc:systeme:commandes:les-commandes-join-paste-split-et-nl [06/08/2014 16:43] Hypathie [sort] |
doc:systeme:commandes:les-commandes-join-paste-split-et-nl [06/08/2014 17:51] Hypathie [sort] |
||
---|---|---|---|
Ligne 316: | Ligne 316: | ||
* **''-r''** : pour un tri inverse (-rn [inverse de numérique] ou -rd [inverse d'alphabétique]) | * **''-r''** : pour un tri inverse (-rn [inverse de numérique] ou -rd [inverse d'alphabétique]) | ||
* **''-M''** : ordre chronologique | * **''-M''** : ordre chronologique | ||
+ | * **''-h''** : comparer des nombres dans un format lisible par un humain (par exemple, 2K 1G) | ||
+ | * **''-f''** : (ignore-case) convertir les minuscules en majuscule | ||
+ | |||
+ | Voir man sort pour les autres options. | ||
</note> | </note> | ||
- | |||
- | |||
====Affichage de plusieurs fichiers avec sort ==== | ====Affichage de plusieurs fichiers avec sort ==== | ||
Ligne 333: | Ligne 335: | ||
<code user> | <code user> | ||
cat sort2.txt | cat sort2.txt | ||
- | <code> | + | <code>=== |
2 5 Daniel | 2 5 Daniel | ||
2 6 Émilien | 2 6 Émilien | ||
Ligne 360: | Ligne 362: | ||
====Enregistrer le résultat : option -o ==== | ====Enregistrer le résultat : option -o ==== | ||
- | ===concaténer sort1.txt et sort2.txt et inscrire le résultat dans un fichier :=== | + | * Concaténer "sort1.txt" et "sort2.txt" et inscrire le résultat dans un fichier : |
<code user> | <code user> | ||
Ligne 379: | Ligne 381: | ||
</code> | </code> | ||
- | ====Trier selon un ordre alphabétique : option -d==== | + | ====Trier selon un ordre alphabétique d'une colonne : option -d==== |
Ligne 397: | Ligne 399: | ||
</code> | </code> | ||
- | * Pour le trier avec sort par alphabétique : | + | * Pour le trier selon l'ordre alphabétique d'une colonne : |
+ | Si on indique le type (numérique ou alphabétique), c'est que le type de la première colonne ne nous intéresse pas.\\ | ||
+ | Par exemple ici, le fichier est rangé selon l'ordre numérique selon ses colonnes 1 et 2. | ||
<code user> | <code user> | ||
sort -k3d alpha-sort.txt | sort -k3d alpha-sort.txt | ||
Ligne 415: | Ligne 419: | ||
>d pour spécifier le type de tri "dictionnaire" ou ordre alphabétique | >d pour spécifier le type de tri "dictionnaire" ou ordre alphabétique | ||
- | ====Tri selon plusieurs types ==== | + | ====Trier selon l'ordre numérique d'une colonne==== |
+ | * soit le fichier "sort.txt" : | ||
+ | |||
+ | <code user> | ||
+ | cat sort.txt | ||
+ | </code> | ||
+ | <code> | ||
+ | pomme 2 | ||
+ | fraise 6 | ||
+ | abricot 9 | ||
+ | kiwi 3 | ||
+ | </code> | ||
+ | |||
+ | * Pour ordonner ce fichier selon l'ordre numérique de la deuxième colonne : | ||
+ | |||
+ | <code user> | ||
+ | sort -k2n sort.txt | ||
+ | </code> | ||
+ | |||
+ | <code> | ||
+ | pomme 2 | ||
+ | kiwi 3 | ||
+ | fraise 6 | ||
+ | abricot 9 | ||
+ | </code> | ||
+ | |||
+ | <note tip> | ||
+ | Si on avait voulu ranger ce fichier selon l'ordre alphabétique, il aurait suffi de faire : | ||
+ | |||
+ | sort sort.txt | ||
+ | |||
+ | Il aurait été inutile d'indiquer la colonne car la première colonne comporte des chaînes de caractères.\\ | ||
+ | |||
+ | Comme vous l'aurez compris, par défaut, sort trie en fonction de la colonne n°1 selon le type qui est le sien, puis s'il faut, en fonction de la colonne n° 2, et du type qui est celui de cette deuxième colonne.\\ | ||
+ | |||
+ | En fait, sed s'adapte automatiquement au type du contenu de la première colonne, voire au type du contenu de la seconde colonne pour départager éventuellement les doublons de cette première colonne, même si les types diffèrent d'une colonne à l'autre.\\ | ||
+ | </note> | ||
+ | |||
+ | ====Tri par défaut d'un fichier dont les colonnes présentent plusieurs types==== | ||
+ | |||
+ | * Soit fichier "xxx-sort.txt" désordonné selon ses types : | ||
+ | <code user> | ||
+ | cat xxx-sort.txt | ||
+ | </code> | ||
+ | <code> | ||
+ | 10 fraise | ||
+ | pomme 6 | ||
+ | Titi grosminet | ||
+ | 25 8 | ||
+ | </code> | ||
+ | * Par défaut, sort trie selon l'ordre numérique d'abord puis par ordre alphabétique : | ||
+ | <code user> | ||
+ | sort xxx-sort.txt | ||
+ | </code> | ||
+ | <code> | ||
+ | 10 fraise | ||
+ | 25 8 | ||
+ | pomme 6 | ||
+ | Titi grosminet | ||
+ | </code> | ||
+ | |||
+ | * de même pour l'autre colonne : | ||
+ | <code> | ||
+ | sort -k2 xxx-sort.txt | ||
+ | </code> | ||
+ | <code> | ||
+ | pomme 6 | ||
+ | 25 8 | ||
+ | 10 fraise | ||
+ | Titi grosminet | ||
+ | </code> | ||
+ | |||
+ | |||
+ | ====Trier selon plusieurs colonnes et différents types ==== | ||
- | * Soit le fichier "sort4.txt" qui est un extrait mélangé du fichier /etc/passwd : | + | * Soit le fichier "sort4.txt" qui est un extrait du fichier **/etc/passwd** dont j'ai pris quelques lignes que ai interverties pour cet exemple : |
<code user> | <code user> | ||
cat sort4.txt | cat sort4.txt | ||
Ligne 435: | Ligne 512: | ||
- | * Pour faire un tri selon le shell des utilisateurs (7ième colonnes) et en cas de doublon pour cette colonne, en fonction ensuite de l'UID (3ième colonne) | + | * Pour faire un tri selon le shell des utilisateurs (7ième colonnes : type "dictionnaire") et en cas de doublon pour cette colonne, en fonction ensuite de l'UID (3ième colonne : type "numérique") |
<code user> | <code user> | ||
Ligne 441: | Ligne 518: | ||
</code> | </code> | ||
- | > option -t':' pour spécifier le séparateur (par défaut c'est l'espace ou la tabulation)\\ | + | > **''-t':' ''** pour spécifier le séparateur **'':''** (par défaut c'est l'espace ou la tabulation, il faut donc indiquer le séparateur pour les fichiers de type.) |
- | > option -k pour indiquer les colonnes souhaitées\\ | + | > **''-k''** pour indiquer les colonnes souhaitées |
- | > => **''-t':' -k 7d -k 3n''** | + | > **''7d''** pour **7**ième colonne type "**d**ictionnaire" |
+ | > **''3n''** pour **3**ième colonne type "**n**umérique" | ||
<code> | <code> |