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 | 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 [07/08/2014 11:23] Hypathie [sort] |
||
---|---|---|---|
Ligne 295: | Ligne 295: | ||
03 Lili lili@hotmail.com 03 | 03 Lili lili@hotmail.com 03 | ||
</code> | </code> | ||
- | |||
- | ===== sort ===== | ||
- | ===Syntaxe=== | ||
- | |||
- | sort [options [+POS1] [-POS2]] [fichier...] | ||
- | |||
- | <note tip> | ||
- | __La commande sort permet__ : | ||
- | |||
- | * d'afficher le contenu de fichiers ; | ||
- | * de trier les lignes d'un fichier texte, en fonction des colonnes. | ||
- | __ | ||
- | Les options utiles__: | ||
- | |||
- | * **''-o''** : inscrire la sortie dans un fichier | ||
- | * **''-t''** : pour spécifier le séparateur (par défaut ce sont les espaces ou les tabulations qui délimitent les colonnes) | ||
- | * **''-k''** : pour spécifier la colonne (à la place de +POS1 -POS2) | ||
- | * **''-n''** : pour spécifier qu'il s'agit d'un tri numérique | ||
- | * **''-d''** : pour tri dictionnaire | ||
- | * **''-r''** : pour un tri inverse (-rn [inverse de numérique] ou -rd [inverse d'alphabétique]) | ||
- | * **''-M''** : ordre chronologique | ||
- | </note> | ||
- | |||
- | |||
- | |||
- | ====Affichage de plusieurs fichiers avec sort ==== | ||
- | |||
- | * Comparaison avec la commande cat : | ||
- | <code user> | ||
- | cat sort1.txt | ||
- | </code> | ||
- | <code> | ||
- | 5 1 Amandine | ||
- | 1 7 Bruno | ||
- | 3 2 Caroline | ||
- | </code> | ||
- | <code user> | ||
- | cat sort2.txt | ||
- | <code> | ||
- | 2 5 Daniel | ||
- | 2 6 Émilien | ||
- | 0 3 Fabrice | ||
- | 0 4 Guillaume | ||
- | </code> | ||
- | |||
- | >Dans chacun de ses deux fichiers, les lignes ne sont pas rangées en fonction des colonnes | ||
- | |||
- | <code user> | ||
- | sort sort1.txt sort2.txt | ||
- | </code> | ||
- | <code> | ||
- | 0 3 Fabrice | ||
- | 0 4 Guillaume | ||
- | 1 7 Bruno | ||
- | 2 5 Daniel | ||
- | 2 6 Émilien | ||
- | 3 2 Caroline | ||
- | 5 1 Amandine | ||
- | </code> | ||
- | |||
- | >Même sans option, les deux fichiers ont été concaténés et leurs lignes rangées par ordre numérique croissant en fonction de la première colonne. | ||
- | >Si des doublons apparaissent dans la première colonne pour deux lignes consécutives, ces deux lignes seront rangées en fonction de leur deuxième colonne. | ||
- | |||
- | ====Enregistrer le résultat : option -o ==== | ||
- | |||
- | ===concaténer sort1.txt et sort2.txt et inscrire le résultat dans un fichier :=== | ||
- | |||
- | <code user> | ||
- | sort -o sort3.txt sort1.txt sort2.txt | ||
- | </code> | ||
- | |||
- | <code user> | ||
- | cat sort3.txt | ||
- | </code> | ||
- | <code> | ||
- | 0 3 Fabrice | ||
- | 0 4 Guillaume | ||
- | 1 7 Bruno | ||
- | 2 5 Daniel | ||
- | 2 6 Émilien | ||
- | 3 2 Caroline | ||
- | 5 1 Amandine | ||
- | </code> | ||
- | |||
- | ====Trier selon un ordre alphabétique : option -d==== | ||
- | |||
- | |||
- | * soit le fichier "alpha-sort.txt" déjà trié par ordre numérique selon les colonnes 1 et 2 pour les doublons : | ||
- | |||
- | <code user> | ||
- | cat alpha-sort.txt | ||
- | </code> | ||
- | <code> | ||
- | 1 2 Francine | ||
- | 2 3 Édith | ||
- | 3 4 Géraldine | ||
- | 4 5 Béatrice | ||
- | 5 6 Christelle | ||
- | 5 7 Dorothée | ||
- | 6 8 Amanda | ||
- | </code> | ||
- | |||
- | * Pour le trier avec sort par alphabétique : | ||
- | <code user> | ||
- | sort -k3d alpha-sort.txt | ||
- | </code> | ||
- | <code> | ||
- | 6 8 Amanda | ||
- | 4 5 Béatrice | ||
- | 5 6 Christelle | ||
- | 2 3 Édith | ||
- | 5 7 Dorothée | ||
- | 1 2 Francine | ||
- | 3 4 Géraldine | ||
- | </code> | ||
- | |||
- | > l'option -k pour indiquer qu'on va utiliser une colonne spécifique pour le tri; | ||
- | >3 pour spécifier le n° de colonne | ||
- | >d pour spécifier le type de tri "dictionnaire" ou ordre alphabétique | ||
- | |||
- | ====Tri selon plusieurs types ==== | ||
- | |||
- | * Soit le fichier "sort4.txt" qui est un extrait mélangé du fichier /etc/passwd : | ||
- | <code user> | ||
- | cat sort4.txt | ||
- | </code> | ||
- | <code> | ||
- | daemon:x:1:1:daemon:/usr/sbin:/bin/sh | ||
- | root:x:0:0:root:/root:/bin/bash | ||
- | man:x:6:12:man:/var/cache/man:/bin/sh | ||
- | bin:x:2:2:bin:/bin:/bin/sh | ||
- | news:x:9:9:news:/var/spool/news:/bin/sh | ||
- | sync:x:4:65534:sync:/bin:/bin/sync | ||
- | games:x:5:60:games:/usr/games:/bin/sh | ||
- | mail:x:8:8:mail:/var/mail:/bin/sh | ||
- | lp:x:7:7:lp:/var/spool/lpd:/bin/sh | ||
- | sys:x:3:3:sys:/dev:/bin/sh | ||
- | </code> | ||
- | |||
- | |||
- | * 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) | ||
- | |||
- | <code user> | ||
- | sort -t':' -k 7d -k 3n sort4.txt | ||
- | </code> | ||
- | |||
- | > option -t':' pour spécifier le séparateur (par défaut c'est l'espace ou la tabulation)\\ | ||
- | > option -k pour indiquer les colonnes souhaitées\\ | ||
- | > => **''-t':' -k 7d -k 3n''** | ||
- | |||
- | <code> | ||
- | root:x:0:0:root:/root:/bin/bash | ||
- | daemon:x:1:1:daemon:/usr/sbin:/bin/sh | ||
- | bin:x:2:2:bin:/bin:/bin/sh | ||
- | sys:x:3:3:sys:/dev:/bin/sh | ||
- | games:x:5:60:games:/usr/games:/bin/sh | ||
- | man:x:6:12:man:/var/cache/man:/bin/sh | ||
- | lp:x:7:7:lp:/var/spool/lpd:/bin/sh | ||
- | mail:x:8:8:mail:/var/mail:/bin/sh | ||
- | news:x:9:9:news:/var/spool/news:/bin/sh | ||
- | sync:x:4:65534:sync:/bin:/bin/sync | ||
- | </code> | ||
- | |||