logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

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 → ODT PDF Export

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

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 [08/06/2014 08:30]
Hypathie [Introduction]
doc:systeme:commandes:les-commandes-join-paste-split-et-nl [10/07/2014 09:24]
Hypathie [sort]
Ligne 1: Ligne 1:
-====== ​Les commandes : d'​autres commandes pour la gestion des fichiers-texte ======+====== ​D'​autres commandes pour la gestion des fichiers-texte ======
  
   * Objet : Voici d'​autres commandes pour la gestion de fichiers texte   * Objet : Voici d'​autres commandes pour la gestion de fichiers texte
-  * Niveau requis : {{tag>​débutant }} +  * Niveau requis : {{tag>grand-débutant }}
-  * Commentaires : //Contexte d'​utilisation du sujet du tuto. // FIXME+
   * 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>en-chantier}} +  * Suivi : {{tag>à-placer}} 
-    * Création par **Hypathie** 07/06/2014+    * Création par [[user>Hypathie]] 07/06/2014
     * Testé par <...> le <...> FIXME     * Testé par <...> le <...> FIXME
-  * Commentaires sur le forum : [[url | Lien vers le forum concernant ce tuto]] ((N'​hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) FIXME+  * Commentaires sur le forum : [[http://​debian-facile.org/​viewtopic.php?​pid=92369#​p92369 ​| Lien vers le forum concernant ce tuto]] ((N'​hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !))
  
-**Nota :**+**Nota : ​Voici des commandes très simples d'​utilisation. ​**
  
 Contributeurs,​ les FIXME sont là pour vous aider, supprimez-les une fois le problème corrigé ou le champ rempli ! Contributeurs,​ les FIXME sont là pour vous aider, supprimez-les une fois le problème corrigé ou le champ rempli !
  
 ===== Introduction ===== ===== Introduction =====
 +
 +Pour les commandes principales de gestion des fichiers : 
   * [[doc:​systeme:​commandes:​creer|Les commandes Linux de gestion des fichiers et répertoires]]   * [[doc:​systeme:​commandes:​creer|Les commandes Linux de gestion des fichiers et répertoires]]
-  ​[[doc:systeme:expand|commande expand]]+ 
 +Nous allons aborder quelques commandes complémentaires permettant de : 
 + 
 +  ​améliorer l'​affichage ​fnt ; nl 
 +  * combiner le contenu de fichiers ​join ; paste  
 +  * transformer le contenu de fichier : sort ; split ; tr ; uniq ; expand ​et unexpand 
  
  
Ligne 24: Ligne 31:
   fmt [options] [fichier...]   fmt [options] [fichier...]
   ​   ​
-=== préparation===+=== Préparation===
 Création du fichier "​~/​Essai-text-processing/​essai-fmt"​ Création du fichier "​~/​Essai-text-processing/​essai-fmt"​
  
Ligne 34: Ligne 41:
  
 ===Affichage du contenu d'un fichier en respectant les mots === ===Affichage du contenu d'un fichier en respectant les mots ===
-  ​L'​affichage ​avec la commande ​"cat" est parfois difficile à lire:+ 
 +  ​Affichage ​avec la commande ​''​cat''​
 <code user> <code user>
 cat ~/​Essai-text-processing/​essai-fmt cat ~/​Essai-text-processing/​essai-fmt
-# Retour :+</​code>​ 
 +<​code>​
 chez debian-facile c'est facile ... très facile ... très très facile ... très tr chez debian-facile c'est facile ... très facile ... très très facile ... très tr
 ès très très très très facile ... facile et encore facile ! ès très très très très facile ... facile et encore facile !
 </​code>​ </​code>​
  
-  ​* Affichage avec la commande ​"fmt" ​:+>​L'​affichage avec la commande ''​cat''​ peut être difficile à lire. 
 + 
 +  ​* Affichage avec la commande ​''​fmt'' ​:
 <code user> <code user>
 fmt ~/​Essai-text-processing/​essai-fmt fmt ~/​Essai-text-processing/​essai-fmt
-# Retour :+</​code>​ 
 +<​code>​
 chez debian-facile c'est facile ... très facile ... très très facile chez debian-facile c'est facile ... très facile ... très très facile
 ... très très très très très très facile ... facile et encore ... très très très très très très facile ... facile et encore
Ligne 51: Ligne 63:
 </​code>​ </​code>​
 <​note>​ <​note>​
-Par défaut, la commande ​"fmt" ​affiche le contenu d'un fichier par ligne de 75 caractères maximum. +  * Par défaut, la commande ​''​fmt'' ​affiche le contenu d'un fichier par ligne de 75 caractères maximum. 
-</​note>​ +  * L'​option ''​-w'' ​: pour indiquer le nombre de caractère par ligne
-===Options utiles === +
-  * -w : pour indiquer le nombre de caractère par ligne+
 <code user> <code user>
 fmt -w 20 ~/​Essai-text-processing/​essai-fmt fmt -w 20 ~/​Essai-text-processing/​essai-fmt
-# Retour :+</​code>​ 
 +<​code>​
 chez debian-facile chez debian-facile
 c'est facile c'est facile
Ligne 68: Ligne 79:
 encore facile ! encore facile !
 </​code>​ </​code>​
 +</​note>​
 +
 ===Combiner fmt et less pour encore plus de lisibilité === ===Combiner fmt et less pour encore plus de lisibilité ===
 <code user> <code user>
 fmt -w 20 ~/​Essai-text-processing/​essai-fmt | less fmt -w 20 ~/​Essai-text-processing/​essai-fmt | less
-# Retour :+</​code>​ 
 +<​code>​
 chez debian-facile chez debian-facile
 c'est facile c'est facile
Ligne 82: Ligne 96:
 encore facile ! encore facile !
 (END) (END)
- 
 </​code>​ </​code>​
   * Voir [[doc:​editeurs:​less| la commande less]]   * Voir [[doc:​editeurs:​less| la commande less]]
Ligne 103: Ligne 116:
 less ~/​Essai-text-processing/​bashrc-bis less ~/​Essai-text-processing/​bashrc-bis
 </​code>​ </​code>​
-Extrait du retour : + 
-<​code ​user>+<​code>​
 # ~/.bashrc: executed by bash(1) for non-login shells. # ~/.bashrc: executed by bash(1) for non-login shells.
 # see /​usr/​share/​doc/​bash/​examples/​startup-files (in the package bash-doc) # see /​usr/​share/​doc/​bash/​examples/​startup-files (in the package bash-doc)
Ligne 114: Ligne 127:
       *) return;;       *) return;;
 esac esac
-[...]+</​code>​ 
 +>​Premières lignes du retour. 
 + 
 ===Affichage numéroté === ===Affichage numéroté ===
 <​code>​ <​code>​
 nl ~/​Essai-text-processing/​bashrc-bis nl ~/​Essai-text-processing/​bashrc-bis
 </code user> </code user>
-Extrait du retour :+
 <​code>​ <​code>​
      1 # ~/.bashrc: executed by bash(1) for non-login shells.      1 # ~/.bashrc: executed by bash(1) for non-login shells.
Ligne 130: Ligne 145:
      ​7  ​     *) return;;      ​7  ​     *) return;;
      ​8 esac      ​8 esac
- [...] + 
-</​code ​user>+</​code>​ 
 + 
 +>​Premières lignes du retour 
 ===Pour encore plus de lisibilité === ===Pour encore plus de lisibilité ===
  
Ligne 137: Ligne 155:
 fmt -w 65 ~/​Essai-text-processing/​bashrc-bis | nl ~/​Essai-text-processing/​bashrc-bis | less fmt -w 65 ~/​Essai-text-processing/​bashrc-bis | nl ~/​Essai-text-processing/​bashrc-bis | less
 </​code>​ </​code>​
- 
-Extrait du retour : 
- 
 <​code>​ <​code>​
      ​1 ​ # ~/.bashrc: executed by bash(1) for non-login shells.      ​1 ​ # ~/.bashrc: executed by bash(1) for non-login shells.
Ligne 150: Ligne 165:
      ​7 ​       *) return;;      ​7 ​       *) return;;
      ​8 ​ esac      ​8 ​ esac
-        +
-[...]+
 </​code>​ </​code>​
 +
 +>​Premières lignes du retour
 +
 +<​note>​
 +Par défaut la commande nl numérote les lignes non-vides.\
 +  * Quelques options :\\
 +    - -b : numérotation des lignes vides
 +    - -b -t[expression régulière] : affiche tout mais numérote les lignes qui correspondent à l'​expression régulière
 +    - -n ln : affichage avec numérotation tout à droit.
 +    - -n rn : affichage par défaut, c'​est-à-dire avec une tabulation à droite avec le chiffre de la numérotation.
 +    - -n rz : affichage de zéro entre le bord droit et le chiffre de numérotation ​
 +  * voir man nl pour plus de meilleures explications.
 +</​note>​
 =====La commande join ===== =====La commande join =====
 ===Syntaxe de la commande join === ===Syntaxe de la commande join ===
Ligne 164: Ligne 191:
 cat ~/​Essai-text-processing/​users cat ~/​Essai-text-processing/​users
 </​code>​ </​code>​
-retour : 
 <​code>​ <​code>​
 01 Toto 01 Toto
Ligne 175: Ligne 201:
 </​code>​ </​code>​
  
-Retour : 
 <​code>​ <​code>​
 toto@gmail.com 01 toto@gmail.com 01
Ligne 187: Ligne 212:
 join -1 1 -2 2 ~/​Essai-text-processing/​users ~/​Essai-text-processing/​infos-users join -1 1 -2 2 ~/​Essai-text-processing/​users ~/​Essai-text-processing/​infos-users
 </​code>​ </​code>​
-  * option -1 : donne le n° de colonne du champ commun, pour le premier document 
-  * 1 : premier fichier 
-  * option -2 : n° de colonne du champ commun, pour le deuxième document 
-  * 2 : deuxième fichier 
-  * -j option CHAMP : équivalent à « -1 CHAMP -2 CHAMP » 
-  * -i : ignorer ​ les  différences ​ de  casse  
-  * voir man join pour plus d'​option 
- 
-Retour : 
 <​code>​ <​code>​
 01 Toto toto@gmail.com 01 Toto toto@gmail.com
Ligne 201: Ligne 217:
 03 Lili lili@hotmail.com 03 Lili lili@hotmail.com
 </​code>​ </​code>​
 +  * Explications :
 +    * l'​option ''​-1''​ : donne le n° de colonne du champ commun, pour le premier document
 +    * 1 : premier fichier
 +    * l'​option ''​-2''​ : n° de colonne du champ commun, pour le deuxième document
 +    * 2 : deuxième fichier
 +  * D'​autres options utiles :
 +    * ''​-j''​ (option CHAMP) : équivalent à « -1 CHAMP -2 CHAMP »
 +    * ''​-i''​ : ignorer ​ les  différences ​ de  casse 
 +  * voir ''​man join''​ pour plus d'​options
 +
 <​note>​ <​note>​
-Pour fusionner des fichiers qui ont en commun ​":"+Pour fusionner des fichiers qui ont en commun ​''​:''​\\  
-join -t':'​ -2 1 -2 2 fichier1 fichier2+''​join -t':'​ -2 1 -2 2 fichier1 fichier2''​
 </​note>​ </​note>​
  
-=== concaténation ​de la fusion dans un fichier===+=== Concaténation ​de la fusion dans un fichier===
 <code user> <code user>
 join -1 1 -2 2 ~/​Essai-text-processing/​users ~/​Essai-text-processing/​infos-users > ~/​Essai-text-processing/​adr-users join -1 1 -2 2 ~/​Essai-text-processing/​users ~/​Essai-text-processing/​infos-users > ~/​Essai-text-processing/​adr-users
 </​code>​ </​code>​
-===vérification ​===+===Vérification ​===
 <code user> <code user>
 cat ~/​Essai-text-processing/​adr-users cat ~/​Essai-text-processing/​adr-users
Ligne 230: Ligne 256:
 <code user> <code user>
 cat ~/​Essai-text-processing/​users cat ~/​Essai-text-processing/​users
-# retour :+</​code>​ 
 +<​code>​
 01 Toto 01 Toto
 02 Titi 02 Titi
 03 Lili 03 Lili
 +</​code>​ 
 +<code user>
 cat ~/​Essai-text-processing/​infos-users cat ~/​Essai-text-processing/​infos-users
-#retour : +</​code>​ 
 +<​code> ​
 toto@gmail.com 01 toto@gmail.com 01
 titi@gmx.fr 02 titi@gmx.fr 02
Ligne 243: Ligne 272:
  
 ===Regroupement des lignes des deux fichiers === ===Regroupement des lignes des deux fichiers ===
-Retour: 
  
 <code user> <code user>
 paste ~/​Essai-text-processing/​users ~/​Essai-text-processing/​infos-users paste ~/​Essai-text-processing/​users ~/​Essai-text-processing/​infos-users
 </​code>​ </​code>​
- 
-Retour : 
  
 <​code>​ <​code>​
Ligne 279: Ligne 305:
 <code user> <code user>
 cat ~/​Essai-text-processing/​users.sort cat ~/​Essai-text-processing/​users.sort
-# Retour+</​code>​ 
 +<​code>​
 5 Papi 5 Papi
 1 Toto 1 Toto
Ligne 288: Ligne 315:
 01 Nani 01 Nani
 </​code>​ </​code>​
-=== tri par défaut===+=== Tri par défaut===
 <code user> <code user>
 sort ~/​Essai-text-processing/​users.sort sort ~/​Essai-text-processing/​users.sort
-# Retour :+</​code>​ 
 +<​code>​
 003 Zaza 003 Zaza
 01 Nani 01 Nani
Ligne 305: Ligne 333:
 <code user> <code user>
 cat ~/​Essai-text-processing/​sort.abc cat ~/​Essai-text-processing/​sort.abc
-# Retour:+</​code>​ 
 +<​code>​
 tomate tomate
 fraise fraise
Ligne 316: Ligne 345:
 <code user> <code user>
 sort ~/​Essai-text-processing/​sort.abc sort ~/​Essai-text-processing/​sort.abc
-# Retour:+</​code>​ 
 +<​code>​
 abricot abricot
 ananas ananas
Ligne 328: Ligne 358:
 <code user> <code user>
 cat ~/​Essai-text-processing/​sort.abc cat ~/​Essai-text-processing/​sort.abc
-# Retour :+</​code>​ 
 +<​code>​
 tomate:4 tomate:4
 fraise:1 fraise:1
Ligne 348: Ligne 379:
  
 <note tip> <note tip>
-Les options ​très utiles:+Les options utiles:
   * -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   * -k : pour spécifier la colonne
Ligne 360: Ligne 391:
 <code user> <code user>
 cat ~/​Essai-text-processing/​sort.123abc cat ~/​Essai-text-processing/​sort.123abc
-# Retour:+</​code>​ 
 +<​code>​
 tomate:x:c tomate:x:c
 fraise:1 fraise:1
Ligne 371: Ligne 403:
 <code user> <code user>
 sort -t':'​ -k 2n -k 3d ~/​Essai-text-processing/​sort.123abc sort -t':'​ -k 2n -k 3d ~/​Essai-text-processing/​sort.123abc
-# Retour:+</​code>​ 
 +<​code>​
 kiwi:x:a kiwi:x:a
 ananas:x:b ananas:x:b
Ligne 380: Ligne 413:
 </​code>​ </​code>​
  
-=== concaténer ​et créer un fichier avec la résultat===+=== Concaténer ​et créer un fichier avec la résultat===
 <code user> <code user>
 sort -t':'​ -k 2n -k 3d ~/​Essai-text-processing/​sort.123abc > ~/​Essai-text-processing/​sort.123abc.ok sort -t':'​ -k 2n -k 3d ~/​Essai-text-processing/​sort.123abc > ~/​Essai-text-processing/​sort.123abc.ok
Ligne 389: Ligne 422:
 <code user> <code user>
 cat ~/​Essai-text-processing/​sort.123abc.okkiwi:​x:​a cat ~/​Essai-text-processing/​sort.123abc.okkiwi:​x:​a
-# Retour :+</​code>​ 
 +<​code>​
 ananas:x:b ananas:x:b
 tomate:x:c tomate:x:c
Ligne 603: Ligne 637:
 </​code>​ </​code>​
  
 +=====Les commandes expand et unexpand =====
 +====unexpand ====
 +La commande "​unexpand"​ convertit les groupes de 7 espaces en 1 tabulation
 +
 +===Syntaxe ===
 +
 +  unexpand [-a] [fichier...]
 +
 +=== Préparation===
 +  * Création du fichier "​~/​Essai-text-processing/​users-infos-espaces"​
 +  * Avec 7 ou plus espaces pour ligne 1 et 3
 +  * Avec moins de 7 espaces pour ligne 2
 +<code user>
 +cat > ~/​Essai-text-processing/​users-infos-espaces<<​EOF
 +>         ​01 ​       Toto        toto@gmx.fr ​       modo
 +>        02       ​Titi ​      ​titi@gmail.com ​      ​membre
 +>          03         ​Lili ​        ​lili@hotmail.com ​        ​membre
 +> EOF
 +</​code>​
 +<​note>​
 +Ci-dessus ce sont plusieurs espaces qui sont insérés entre les chaînes de caractères.
 +Pour intégrer le contenu d'un fichier avec les redirections et EOF, la touche tabulation ne fonctionne pas.
 +</​note>​
 +===Affichage avec cat : ce sont des espaces ===
 +<code user>
 +cat ~/​Essai-text-processing/​users-infos-espaces
 +# Retour :
 +        01        Toto        toto@gmx.fr ​       modo
 +       ​02 ​      ​Titi ​      ​titi@gmail.com ​      ​membre
 +         ​03 ​        ​Lili ​        ​lili@hotmail.com ​        ​membre
 +</​code>​
 +===conversion des espaces en tabulation ===
 +<code user>
 +unexpand -a ~/​Essai-text-processing/​users-infos-espaces
 +# Retour:
 + 01   Toto       toto@gmx.fr modo
 +       ​02 Titi  ​  ​titi@gmail.com membre
 + 03     Lili lili@hotmail.com  ​ membre
 +
 +</​code>​
 +<​note>​
 +  * Option -a pour que la conversion des espaces ait lieu partout et pas seulement pour les espaces constituants la première colonnes de droite
 +  * Les groupes de moins de 7 espaces consécutifs n'ont pas été convertis en tabulation ​
 +</note
 +====La commande "​expand"​ ====
 +La commande "​expand"​ convertit les tabulations en espaces
 +
 +===Syntaxe ===
 +
 +  expand [-t numero] [fichier...]
 +
 +===Préparation ===
 +Soit le fichier "​~/​Essai-text-processing/​users-infos-tabul"​ contenant des tabulations
 +<code user>
 +unexpand -a ~/​Essai-text-processing/​users-infos-espaces > ~/​Essai-text-processing/​users-infos-tabul
 +</​code>​
 +
 +=== Visualisation===
 +
 +<code user>
 +cat ~/​Essai-text-processing/​users-infos-tabul
 +# Retour :
 + 01   Toto       toto@gmx.fr modo
 +       ​02 Titi  ​  ​titi@gmail.com membre
 + 03     Lili lili@hotmail.com  ​ membre
 +
 +</​code>​
 +===Convertion des tabulations en espaces===
 +
 +<code user>
 +expand ~/​Essai-text-processing/​users-infos-tabul
 +# Retour :
 +        01        Toto        toto@gmx.fr ​       modo
 +       ​02 ​      ​Titi ​      ​titi@gmail.com ​      ​membre
 +         ​03 ​        ​Lili ​        ​lili@hotmail.com ​        ​membre
 +
 +</​code>​
 +=== déterminer le nombre d'​espaces qui remplaceront chaque tabulation===
 +  * option -t nombre
 +<code user>
 +expand -t 1 ~/​Essai-text-processing/​users-infos-tabul
 +# Retour :
 + ​01 ​  ​Toto ​      ​toto@gmx.fr ​ modo
 +       02 Titi    titi@gmail.com membre
 +  03     ​Lili ​ lili@hotmail.com ​  ​membre
 +</​code>​
  
 +====Aller plus loin avec les commandes expand et unexpand ====
 +Voir : [[doc:​systeme:​expand |expand]]
  
doc/systeme/commandes/les-commandes-join-paste-split-et-nl.txt · Dernière modification: 06/11/2015 17:57 par paskal

Pied de page des forums

Propulsé par FluxBB