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 | |||
doc:systeme:sort [08/05/2015 20:25] smolski [Trier selon l'ordre numérique d'une colonne] |
doc:systeme:sort [03/10/2015 13:41] (Version actuelle) milou |
||
---|---|---|---|
Ligne 2: | Ligne 2: | ||
* Objet : utiliser la commande sort | * Objet : utiliser la commande sort | ||
- | * Niveau requis : {{tag>débutant}} | + | * Niveau requis : {{tag>débutant avisé}} |
* Commentaires : utilisation en ligne de commandes | * Commentaires : utilisation en ligne de commandes | ||
* Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) | * Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) | ||
- | * Suivi : {{tag>à-placer}} | + | * Suivi : {{tag>à-tester}} |
* Création par [[user>Hypathie]] 07/08/2014 | * Création par [[user>Hypathie]] 07/08/2014 | ||
* Testé par <...> le <...> | * Testé par <...> le <...> | ||
Ligne 23: | Ligne 23: | ||
* **''-o''** : inscrire la sortie dans un fichier | * **''-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) | * **''-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) | * **''-k''** : pour spécifier la colonne (à la place de +POS1 -POS2) | ||
+ | |||
* **''-n''** : pour spécifier qu'il s'agit d'un tri numérique | * **''-n''** : pour spécifier qu'il s'agit d'un tri numérique | ||
+ | |||
* **''-d''** : pour tri dictionnaire | * **''-d''** : pour tri dictionnaire | ||
+ | |||
* **''-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) | * **''-h''** : comparer des nombres dans un format lisible par un humain (par exemple, 2K 1G) | ||
+ | |||
* **''-f''** : (ignore-case) convertir les minuscules en majuscule | * **''-f''** : (ignore-case) convertir les minuscules en majuscule | ||
Ligne 48: | Ligne 56: | ||
cat sort1.txt | cat sort1.txt | ||
</code> | </code> | ||
- | <code> | + | <file config retour de la commande> |
5 1 Amandine | 5 1 Amandine | ||
1 7 Bruno | 1 7 Bruno | ||
3 2 Caroline | 3 2 Caroline | ||
- | </code> | + | </file> |
<code user> | <code user> | ||
cat sort2.txt | cat sort2.txt | ||
</code> | </code> | ||
- | <code> | + | <file config retour de la commande> |
2 5 Daniel | 2 5 Daniel | ||
2 6 Émilien | 2 6 Émilien | ||
0 3 Fabrice | 0 3 Fabrice | ||
0 4 Guillaume | 0 4 Guillaume | ||
- | </code> | + | </file> |
>Dans chacun de ses deux fichiers, les lignes ne sont pas rangées en fonction des colonnes | >Dans chacun de ses deux fichiers, les lignes ne sont pas rangées en fonction des colonnes | ||
Ligne 68: | Ligne 76: | ||
sort sort1.txt sort2.txt | sort sort1.txt sort2.txt | ||
</code> | </code> | ||
- | <code> | + | <file config retour de la commande> |
0 3 Fabrice | 0 3 Fabrice | ||
0 4 Guillaume | 0 4 Guillaume | ||
Ligne 76: | Ligne 84: | ||
3 2 Caroline | 3 2 Caroline | ||
5 1 Amandine | 5 1 Amandine | ||
- | </code> | + | </file> |
>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. | >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. | ||
Ligne 92: | Ligne 100: | ||
cat sort3.txt | cat sort3.txt | ||
</code> | </code> | ||
- | <code> | + | <file config retour de la commande> |
0 3 Fabrice | 0 3 Fabrice | ||
0 4 Guillaume | 0 4 Guillaume | ||
Ligne 100: | Ligne 108: | ||
3 2 Caroline | 3 2 Caroline | ||
5 1 Amandine | 5 1 Amandine | ||
- | </code> | + | </file> |
=====Trier selon l'ordre alphabétique d'une colonne : option -d===== | =====Trier selon l'ordre alphabétique d'une colonne : option -d===== | ||
Ligne 110: | Ligne 118: | ||
cat alpha-sort.txt | cat alpha-sort.txt | ||
</code> | </code> | ||
- | <code> | + | <file config retour de la commande> |
1 2 Francine | 1 2 Francine | ||
2 3 Édith | 2 3 Édith | ||
Ligne 118: | Ligne 126: | ||
5 7 Dorothée | 5 7 Dorothée | ||
6 8 Amanda | 6 8 Amanda | ||
- | </code> | + | </file> |
* Pour le trier selon l'ordre alphabétique d'une colonne : | * Pour le trier selon l'ordre alphabétique d'une colonne : | ||
Ligne 126: | Ligne 134: | ||
sort -k3d alpha-sort.txt | sort -k3d alpha-sort.txt | ||
</code> | </code> | ||
- | <code> | + | <file config retour de la commande> |
6 8 Amanda | 6 8 Amanda | ||
4 5 Béatrice | 4 5 Béatrice | ||
Ligne 134: | Ligne 142: | ||
1 2 Francine | 1 2 Francine | ||
3 4 Géraldine | 3 4 Géraldine | ||
- | </code> | + | </file> |
> l'option -k pour indiquer qu'on va utiliser une colonne spécifique pour le tri; | > l'option -k pour indiquer qu'on va utiliser une colonne spécifique pour le tri; | ||
Ligne 146: | Ligne 154: | ||
cat sort.txt | cat sort.txt | ||
</code> | </code> | ||
- | <code> | + | <file config retour de la commande> |
pomme 2 | pomme 2 | ||
fraise 6 | fraise 6 | ||
abricot 9 | abricot 9 | ||
kiwi 3 | kiwi 3 | ||
- | </code> | + | </file> |
* Pour ordonner ce fichier selon l'ordre numérique de la deuxième colonne : | * Pour ordonner ce fichier selon l'ordre numérique de la deuxième colonne : | ||
Ligne 159: | Ligne 167: | ||
</code> | </code> | ||
- | <code> | + | <file config retour de la commande> |
pomme 2 | pomme 2 | ||
kiwi 3 | kiwi 3 | ||
fraise 6 | fraise 6 | ||
abricot 9 | abricot 9 | ||
- | </code> | + | </file> |
Si on avait voulu ranger ce fichier selon l'ordre alphabétique, il aurait suffi de faire : | Si on avait voulu ranger ce fichier selon l'ordre alphabétique, il aurait suffi de faire : | ||
Ligne 183: | Ligne 191: | ||
cat xxx-sort.txt | cat xxx-sort.txt | ||
</code> | </code> | ||
- | <code> | + | <file config retour de la commande> |
10 fraise | 10 fraise | ||
pomme 6 | pomme 6 | ||
Titi grosminet | Titi grosminet | ||
25 8 | 25 8 | ||
- | </code> | + | </file> |
* Par défaut, sort trie selon l'ordre numérique d'abord puis par ordre alphabétique : | * Par défaut, sort trie selon l'ordre numérique d'abord puis par ordre alphabétique : | ||
<code user> | <code user> | ||
sort xxx-sort.txt | sort xxx-sort.txt | ||
</code> | </code> | ||
- | <code> | + | <file config retour de la commande> |
10 fraise | 10 fraise | ||
25 8 | 25 8 | ||
pomme 6 | pomme 6 | ||
Titi grosminet | Titi grosminet | ||
- | </code> | + | </file> |
* de même pour l'autre colonne : | * de même pour l'autre colonne : | ||
Ligne 204: | Ligne 212: | ||
sort -k2 xxx-sort.txt | sort -k2 xxx-sort.txt | ||
</code> | </code> | ||
- | <code> | + | <file config retour de la commande> |
pomme 6 | pomme 6 | ||
25 8 | 25 8 | ||
10 fraise | 10 fraise | ||
Titi grosminet | Titi grosminet | ||
- | </code> | + | </file> |
Ligne 218: | Ligne 226: | ||
cat sort4.txt | cat sort4.txt | ||
</code> | </code> | ||
- | <code> | + | <file config retour de la commande> |
daemon:x:1:1:daemon:/usr/sbin:/bin/sh | daemon:x:1:1:daemon:/usr/sbin:/bin/sh | ||
root:x:0:0:root:/root:/bin/bash | root:x:0:0:root:/root:/bin/bash | ||
Ligne 229: | Ligne 237: | ||
lp:x:7:7:lp:/var/spool/lpd:/bin/sh | lp:x:7:7:lp:/var/spool/lpd:/bin/sh | ||
sys:x:3:3:sys:/dev:/bin/sh | sys:x:3:3:sys:/dev:/bin/sh | ||
- | </code> | + | </file> |
Ligne 238: | Ligne 246: | ||
</code> | </code> | ||
- | > **''-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.) | + | > **''-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.) |
+ | > | ||
> **''-k''** pour indiquer les colonnes souhaitées | > **''-k''** pour indiquer les colonnes souhaitées | ||
+ | > | ||
> **''7d''** pour **7**ième colonne type "**d**ictionnaire" | > **''7d''** pour **7**ième colonne type "**d**ictionnaire" | ||
+ | > | ||
> **''3n''** pour **3**ième colonne type "**n**umérique" | > **''3n''** pour **3**ième colonne type "**n**umérique" | ||
- | <code> | + | <file config retour de la commande> |
root:x:0:0:root:/root:/bin/bash | root:x:0:0:root:/root:/bin/bash | ||
daemon:x:1:1:daemon:/usr/sbin:/bin/sh | daemon:x:1:1:daemon:/usr/sbin:/bin/sh | ||
Ligne 254: | Ligne 265: | ||
news:x:9:9:news:/var/spool/news:/bin/sh | news:x:9:9:news:/var/spool/news:/bin/sh | ||
sync:x:4:65534:sync:/bin:/bin/sync | sync:x:4:65534:sync:/bin:/bin/sync | ||
- | </code> | + | </file> |