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 [07/06/2014 16:53] Hypathie [La commande paste] |
doc:systeme:commandes:les-commandes-join-paste-split-et-nl [08/06/2014 07:44] Hypathie [La commande split] |
||
---|---|---|---|
Ligne 137: | Ligne 137: | ||
===== sort ===== | ===== sort ===== | ||
+ | ===Syntaxe=== | ||
+ | |||
+ | sort [options [+POS1] [-POS2]] [fichier...] | ||
+ | |||
+ | ===Préparation=== | ||
+ | |||
+ | Soit le fichier "~/Essai-text-processing/users.sort" | ||
+ | <code user> | ||
+ | cat ~/Essai-text-processing/users.sort | ||
+ | # Retour | ||
+ | 5 Papi | ||
+ | 1 Toto | ||
+ | 3 Lili | ||
+ | 2 Titi | ||
+ | 4 Mami | ||
+ | 003 Zaza | ||
+ | 01 Nani | ||
+ | </code> | ||
+ | === tri par défaut=== | ||
+ | <code user> | ||
+ | sort ~/Essai-text-processing/users.sort | ||
+ | # Retour : | ||
+ | 003 Zaza | ||
+ | 01 Nani | ||
+ | 1 Toto | ||
+ | 2 Titi | ||
+ | 3 Lili | ||
+ | 4 Mami | ||
+ | 5 Papi | ||
+ | </code> | ||
+ | |||
+ | ===Tri alphabétique d'une simple colonne=== | ||
+ | |||
+ | <code user> | ||
+ | cat ~/Essai-text-processing/sort.abc | ||
+ | # Retour: | ||
+ | tomate | ||
+ | fraise | ||
+ | abricot | ||
+ | ananas | ||
+ | kiwi | ||
+ | pomme | ||
+ | </code> | ||
+ | |||
+ | <code user> | ||
+ | sort ~/Essai-text-processing/sort.abc | ||
+ | # Retour: | ||
+ | abricot | ||
+ | ananas | ||
+ | fraise | ||
+ | kiwi | ||
+ | pomme | ||
+ | tomate | ||
+ | </code> | ||
+ | |||
+ | ===Tri avec choix de colonne === | ||
+ | <code user> | ||
+ | cat ~/Essai-text-processing/sort.abc | ||
+ | # Retour : | ||
+ | tomate:4 | ||
+ | fraise:1 | ||
+ | abricot:2 | ||
+ | ananas:6 | ||
+ | kiwi:5 | ||
+ | pomme:3 | ||
+ | </code> | ||
+ | |||
+ | <code user> | ||
+ | sort -t':' -k 2n ~/Essai-text-processing/sort.abc | ||
+ | fraise:1 | ||
+ | abricot:2 | ||
+ | pomme:3 | ||
+ | tomate:4 | ||
+ | kiwi:5 | ||
+ | ananas:6 | ||
+ | </code> | ||
+ | |||
+ | <note tip> | ||
+ | Les options très utiles: | ||
+ | * -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 | ||
+ | * -2 : n° de colonne | ||
+ | * -n : pour spécifier qu'il s'agit d'un tri numérique | ||
+ | * -d : pour tri dictionnaire | ||
+ | * -r : pour un tri inverse (-rn ou -rd) | ||
+ | * -M : ordre chronologique | ||
+ | </note> | ||
+ | ===Tri selon plusieurs colonnes === | ||
+ | <code user> | ||
+ | cat ~/Essai-text-processing/sort.123abc | ||
+ | # Retour: | ||
+ | tomate:x:c | ||
+ | fraise:1 | ||
+ | abricot:2 | ||
+ | ananas:x:b | ||
+ | kiwi:x:a | ||
+ | pomme:3 | ||
+ | </code> | ||
+ | |||
+ | <code user> | ||
+ | sort -t':' -k 2n -k 3d ~/Essai-text-processing/sort.123abc | ||
+ | # Retour: | ||
+ | kiwi:x:a | ||
+ | ananas:x:b | ||
+ | tomate:x:c | ||
+ | fraise:1 | ||
+ | abricot:2 | ||
+ | pomme:3 | ||
+ | </code> | ||
+ | |||
+ | === concaténer et créer un fichier avec la résultat=== | ||
+ | <code user> | ||
+ | sort -t':' -k 2n -k 3d ~/Essai-text-processing/sort.123abc > ~/Essai-text-processing/sort.123abc.ok | ||
+ | </code> | ||
+ | |||
+ | ===Vérifier === | ||
+ | |||
+ | <code user> | ||
+ | cat ~/Essai-text-processing/sort.123abc.okkiwi:x:a | ||
+ | # Retour : | ||
+ | ananas:x:b | ||
+ | tomate:x:c | ||
+ | fraise:1 | ||
+ | abricot:2 | ||
+ | pomme:3 | ||
+ | </code> | ||
+ | |||
+ | =====la commande tr ===== | ||
+ | Elle permet de traduire, c'est-à-dire, changer des lettres | ||
+ | ===Syntaxe === | ||
+ | |||
+ | tr [options] ens1 ens2 | ||
+ | |||
+ | ===Exemples === | ||
+ | <code user> | ||
+ | cat ~/Essai-text-processing/tr-essai | ||
+ | # retour: | ||
+ | Pierre Paul Jacques | ||
+ | </code> | ||
+ | |||
+ | <code user> | ||
+ | tr P p < ~/Essai-text-processing/tr-essai | ||
+ | pierre paul Jacques | ||
+ | </code> | ||
+ | |||
+ | <code user> | ||
+ | cat ~/Essai-text-processing/tr-essai | ||
+ | # retour: | ||
+ | Pierre Paul Jacques | ||
+ | </code> | ||
+ | |||
+ | <code user> | ||
+ | tr P X < ~/Essai-text-processing/tr-essai | ||
+ | Xierre Xaul Jacques | ||
+ | </code> | ||
+ | |||
+ | <code user> | ||
+ | cat ~/Essai-text-processing/tr-essai | ||
+ | # retour : | ||
+ | Pierre Paul Jacques | ||
+ | </code> | ||
+ | |||
+ | <code user> | ||
+ | tr PJ pj < ~/Essai-text-processing/tr-essai | ||
+ | pierre paul jacques | ||
+ | </code> | ||
+ | |||
+ | |||
+ | |||
+ | =====La commande uniq ===== | ||
+ | Elle permet d'éliminer les lignes dupliquées d'un fichier trié. | ||
+ | ===Syntaxe=== | ||
+ | |||
+ | uniq [options] [fichier-entrée] [fichier-sortie] | ||
+ | | ||
+ | ===Préparation === | ||
+ | <code user> | ||
+ | cat ~/Essai-text-processing/users-uniq | ||
+ | # Retour: | ||
+ | Papi | ||
+ | 1 Toto | ||
+ | 3 Lili | ||
+ | 2 Titi | ||
+ | 4 Mami | ||
+ | 003 Zaza | ||
+ | 01 Nani | ||
+ | </code> | ||
+ | ===ajouter une ligne=== | ||
+ | <code user> | ||
+ | echo 01 Nani >> ~/Essai-text-processing/users-uniq | ||
+ | </code> | ||
+ | |||
+ | === Supprimer les doublons=== | ||
+ | <code user> | ||
+ | cat ~/Essai-text-processing/users-uniq | ||
+ | # Retour: | ||
+ | 5 Papi | ||
+ | 1 Toto | ||
+ | 3 Lili | ||
+ | 2 Titi | ||
+ | 4 Mami | ||
+ | 003 Zaza | ||
+ | 01 Nani | ||
+ | 01 Nani | ||
+ | </code> | ||
+ | <note> | ||
+ | Il faut que les doublons soient consécutifs, et que le fichier soit "trié" | ||
+ | </note> | ||
+ | <code user> | ||
+ | sort ~/Essai-text-processing/users-uniq | uniq > ~/Essai-text-processing/users-sort-uniq | ||
+ | </code> | ||
+ | ===Vérification=== | ||
+ | <code user> | ||
+ | cat ~/Essai-text-processing/users-sort-uniq | ||
+ | # Retour : | ||
+ | 003 Zaza | ||
+ | 01 Nani | ||
+ | 1 Toto | ||
+ | 2 Titi | ||
+ | 3 Lili | ||
+ | 4 Mami | ||
+ | 5 Papi | ||
+ | </code> | ||
+ | |||
+ | =====La commande split ===== | ||
+ | ===Syntaxe === | ||
+ | |||
+ | split [options] [fichier_entrée [préfixe_sortie]] | ||
+ | |||
+ | ===Préparation === | ||
+ | Création du fichier "~/Essai-text-processing/liste-fruits" | ||
+ | |||
+ | <code user> | ||
+ | cat > ~/Essai-text-processing/liste-fruits <<EOF | ||
+ | > 1 fraise | ||
+ | > 2 abricot | ||
+ | > 3 pomme | ||
+ | > EOF | ||
+ | </code> | ||
+ | |||
+ | Vérification : | ||
+ | |||
+ | <code user> | ||
+ | cat ~/Essai-text-processing/liste-fruits | ||
+ | # Retour: | ||
+ | 1 fraise | ||
+ | 2 abricot | ||
+ | 3 pomme | ||
+ | </code> | ||
+ | ===Découpage en taille et répartition en autant de fichiers === | ||
+ | <note> | ||
+ | * options de découpage par taille :\\ | ||
+ | |||
+ | -C : découper par taille maximale\\ | ||
+ | ex: split -C 5 fichier : découpage en 5 octets\\ | ||
+ | ( ou de même split -C 5b)\\ | ||
+ | |||
+ | split -C 5k fichier : découpage en 5 kilo-octets\\ | ||
+ | split -C 5m fichier : découpage en 5 mega-octets\\ | ||
+ | -b : découper par 1 taille précise\\ | ||
+ | Ex: split -b 5 fichier) => tous les fichiers créés par découpage auront cette taille (sauf peut-être le dernier) | ||
+ | |||
+ | * Remarque:\\ | ||
+ | Il faut 8 bits pour faire 1 byte (1 octet) | ||
+ | - bit : c'est **Bi**naryDigi**T** : un bit est un chiffre binaire, la valeur d'un bit, c'est 0 ou 1. | ||
+ | - byte : terme anglais pour octet. L'ordinaire calcule sur un ou plusieurs byte. | ||
+ | </note> | ||
+ | |||
+ | * exemple de découpage par taille d'un octet avec le préfixe "fruit1b" | ||
+ | |||
+ | <code user> | ||
+ | split -C 1b ~/Essai-text-processing/liste-fruits fruit1b | ||
+ | </code> | ||
+ | Le fichier n'est pas lourd et le découpage en taille de 1 byte (=octet) ne le découpe pas : | ||
+ | <code user> | ||
+ | ls fruit1b* | ||
+ | # Retour | ||
+ | fruit1baa | ||
+ | </code> | ||
+ | |||
+ | Un seul fichier a été créé : | ||
+ | <code user> | ||
+ | cat fruit1b* | ||
+ | # Retour : | ||
+ | 1 fraise | ||
+ | 2 abricot | ||
+ | 3 pomme | ||
+ | </code> | ||
+ | Et le fichier et créé dans le répertoire dans lequel le terminal est ouvert.\ | ||
+ | Pour que le fichier créé lors du découpage soit dans le répertoire du fichier à découper : | ||
+ | |||
+ | <code user> | ||
+ | split -C 1b ~/Essai-text-processing/liste-fruits fruit1b && mv fruit1b* ~/Essai-text-processing/ | ||
+ | #puis | ||
+ | ls ~/Essai-text-processing/fruit1b* | ||
+ | # Retour: | ||
+ | /home/hypathie/Essai-text-processing/fruit1baa | ||
+ | </code> | ||
+ | Ou | ||
+ | <code user> | ||
+ | cd Essai-text-processing/ | ||
+ | # puis: | ||
+ | split -C 1b ~/Essai-text-processing/liste-fruits fruit1b | ||
+ | # puis : | ||
+ | ls fruit1b* | ||
+ | fruit1baa | ||
+ | </code> | ||
+ | |||
+ | ===Découpage par ligne === | ||
+ | <note> | ||
+ | * option de découpage par ligne qui détermine le découpage :\\ | ||
+ | -l : pour indiquer le nombre de ligne\\ | ||
+ | |||
+ | * Remarque :\\ | ||
+ | Sans indication de préfixe, par défaut les fichiers créés par le découpage porte le préfixe x?? | ||
+ | </note> | ||
+ | |||
+ | <code user> | ||
+ | cd Essai-text-processing/ | ||
+ | # puis: | ||
+ | split -l 1 ~/Essai-text-processing/liste-fruits | ||
+ | # puis: | ||
+ | ls x* | ||
+ | # Retour: | ||
+ | xaa xab xac | ||
+ | # puis: | ||
+ | cat x* | ||
+ | # Retour : | ||
+ | 1 fraise | ||
+ | 2 abricot | ||
+ | 3 pomme | ||
+ | </code> | ||
+ | |||
+ | ===== la commande fmt===== | ||
=====La commande nl ===== | =====La commande nl ===== | ||