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 [05/08/2014 18:41] Hypathie [sort] |
doc:systeme:commandes:les-commandes-join-paste-split-et-nl [06/08/2014 16:43] Hypathie [sort] |
||
---|---|---|---|
Ligne 302: | Ligne 302: | ||
<note tip> | <note tip> | ||
- | Les options utiles: | + | __La commande sort permet__ : |
- | * ''-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 | + | * d'afficher le contenu de fichiers ; |
- | * ''-2'' : n° de colonne | + | * de trier les lignes d'un fichier texte, en fonction des colonnes. |
- | * ''-n'' : pour spécifier qu'il s'agit d'un tri numérique | + | __ |
- | * ''-d'' : pour tri dictionnaire | + | Les options utiles__: |
- | * ''-r'' : pour un tri inverse (-rn ou -rd) | + | |
- | * ''-M'' : ordre chronologique | + | * **''-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> | </note> | ||
- | ===Préparation=== | ||
- | Soit le fichier "sort.txt" | + | |
+ | ====Affichage de plusieurs fichiers avec sort ==== | ||
+ | |||
+ | * Comparaison avec la commande cat : | ||
<code user> | <code user> | ||
- | cat sort.txt | + | cat sort1.txt |
</code> | </code> | ||
<code> | <code> | ||
- | 5 Papi | + | 5 1 Amandine |
- | 1 Toto | + | 1 7 Bruno |
- | 3 Lili | + | 3 2 Caroline |
- | 2 Titi | + | |
- | 4 Mami | + | |
- | 003 Zaza | + | |
- | 01 Nani | + | |
</code> | </code> | ||
- | === Tri par défaut=== | ||
<code user> | <code user> | ||
- | sort ~/Essai-text-processing/users.sort | + | 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> | ||
<code> | <code> | ||
- | 003 Zaza | + | 0 3 Fabrice |
- | 01 Nani | + | 0 4 Guillaume |
- | 1 Toto | + | 1 7 Bruno |
- | 2 Titi | + | 2 5 Daniel |
- | 3 Lili | + | 2 6 Émilien |
- | 4 Mami | + | 3 2 Caroline |
- | 5 Papi | + | 5 1 Amandine |
</code> | </code> | ||
- | ===Tri avec choix de colonne === | + | >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> | <code user> | ||
- | sort -t':' -k 2n sort.txt | + | sort -o sort3.txt sort1.txt sort2.txt |
+ | </code> | ||
+ | |||
+ | <code user> | ||
+ | cat sort3.txt | ||
</code> | </code> | ||
<code> | <code> | ||
- | 003 Zaza | + | 0 3 Fabrice |
- | 01 Nan | + | 0 4 Guillaume |
- | 1 Toto | + | 1 7 Bruno |
- | 2 Titi | + | 2 5 Daniel |
- | 3 Lili | + | 2 6 Émilien |
- | 4 Mami | + | 3 2 Caroline |
- | 5 Papi | + | 5 1 Amandine |
</code> | </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> | ||
+ | |||
+ | |||
=====la commande tr ===== | =====la commande tr ===== |