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 [10/07/2014 09:08]
Hypathie [La commande nl]
doc:systeme:commandes:les-commandes-join-paste-split-et-nl [02/08/2014 02:02]
martinux_qc [La commande nl]
Ligne 20: Ligne 20:
 Nous allons aborder quelques commandes complémentaires permettant de : Nous allons aborder quelques commandes complémentaires permettant de :
  
-  * améliorer l'​affichage : fnt ; nl+  * améliorer l'​affichage : fmt ; nl
   * combiner le contenu de fichiers : join ; paste    * combiner le contenu de fichiers : join ; paste 
-  * transformer le contenu de fichier ​: sort ; split ; tr ; uniq ; expand et unexpand+  * transformer le contenu de fichiers ​: sort ; split ; tr ; uniq ; expand et unexpand
  
  
Ligne 36: Ligne 36:
 <code user> <code user>
 cat > ~/​Essai-text-processing/​essai-fmt <<EOF cat > ~/​Essai-text-processing/​essai-fmt <<EOF
-> 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 !+> 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 !
 > EOF > EOF
 </​code>​ </​code>​
Ligne 171: Ligne 172:
  
 <​note>​ <​note>​
-Par défaut la commande nl numérote les lignes non-vides.\+Par défaut la commande nl numérote les lignes non-vides.
   * Quelques options :\\   * Quelques options :\\
     - -b : numérotation des lignes vides     - -b : numérotation des lignes vides
Ligne 191: Ligne 192:
 cat ~/​Essai-text-processing/​users cat ~/​Essai-text-processing/​users
 </​code>​ </​code>​
-retour : 
 <​code>​ <​code>​
 01 Toto 01 Toto
Ligne 202: Ligne 202:
 </​code>​ </​code>​
  
-Retour : 
 <​code>​ <​code>​
 toto@gmail.com 01 toto@gmail.com 01
Ligne 214: Ligne 213:
 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 228: Ligne 218:
 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 257: Ligne 257:
 <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 270: Ligne 273:
  
 ===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 306: Ligne 306:
 <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 315: Ligne 316:
 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 332: Ligne 334:
 <code user> <code user>
 cat ~/​Essai-text-processing/​sort.abc cat ~/​Essai-text-processing/​sort.abc
-# Retour:+</​code>​ 
 +<​code>​
 tomate tomate
 fraise fraise
Ligne 343: Ligne 346:
 <code user> <code user>
 sort ~/​Essai-text-processing/​sort.abc sort ~/​Essai-text-processing/​sort.abc
-# Retour:+</​code>​ 
 +<​code>​
 abricot abricot
 ananas ananas
Ligne 355: Ligne 359:
 <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 375: Ligne 380:
  
 <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 
-  * -2 : n° de colonne +  * ''​-2'' ​: n° de colonne 
-  * -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 ou -rd) +  * ''​-r'' ​: pour un tri inverse (-rn ou -rd) 
-  * -M : ordre chronologique+  * ''​-M'' ​: ordre chronologique
 </​note>​ </​note>​
 ===Tri selon plusieurs colonnes === ===Tri selon plusieurs colonnes ===
 <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 398: Ligne 404:
 <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 407: Ligne 414:
 </​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 416: Ligne 423:
 <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 433: Ligne 441:
 <code user> <code user>
 cat ~/​Essai-text-processing/​tr-essai cat ~/​Essai-text-processing/​tr-essai
-# retour:+</​code>​ 
 +<​code>​
 Pierre Paul Jacques Pierre Paul Jacques
 </​code>​ </​code>​
Ligne 439: Ligne 448:
 <code user> <code user>
 tr P p  < ~/​Essai-text-processing/​tr-essai tr P p  < ~/​Essai-text-processing/​tr-essai
 +</​code>​
 +<​code>​
 pierre paul Jacques pierre paul Jacques
 </​code>​ </​code>​
Ligne 444: Ligne 455:
 <code user> <code user>
 cat ~/​Essai-text-processing/​tr-essai cat ~/​Essai-text-processing/​tr-essai
-# retour:+</​code>​ 
 +<​code>​
 Pierre Paul Jacques Pierre Paul Jacques
 </​code>​ </​code>​
Ligne 450: Ligne 462:
 <code user> <code user>
 tr P X  < ~/​Essai-text-processing/​tr-essai tr P X  < ~/​Essai-text-processing/​tr-essai
 +</​code>​
 +<​code>​
 Xierre Xaul Jacques Xierre Xaul Jacques
 </​code>​ </​code>​
Ligne 455: Ligne 469:
 <code user> <code user>
 cat ~/​Essai-text-processing/​tr-essai cat ~/​Essai-text-processing/​tr-essai
-# retour :+</​code>​ 
 +<​code>​
 Pierre Paul Jacques Pierre Paul Jacques
 </​code>​ </​code>​
Ligne 461: Ligne 476:
 <code user> <code user>
 tr PJ pj < ~/​Essai-text-processing/​tr-essai tr PJ pj < ~/​Essai-text-processing/​tr-essai
 +</​code>​
 +<​code>​
 pierre paul jacques pierre paul jacques
 </​code>​ </​code>​
Ligne 475: Ligne 492:
 <code user> <code user>
 cat ~/​Essai-text-processing/​users-uniq cat ~/​Essai-text-processing/​users-uniq
-# Retour:+</​code>​ 
 +<​code>​
 Papi Papi
 1 Toto 1 Toto
Ligne 484: Ligne 502:
 01 Nani 01 Nani
 </​code>​ </​code>​
-===ajouter ​une ligne===+===Ajouter ​une ligne===
 <code user> <code user>
 echo 01 Nani >> ~/​Essai-text-processing/​users-uniq echo 01 Nani >> ~/​Essai-text-processing/​users-uniq
Ligne 492: Ligne 510:
 <code user> <code user>
 cat ~/​Essai-text-processing/​users-uniq cat ~/​Essai-text-processing/​users-uniq
-# Retour:+</​code>​ 
 +<​code>​
 5 Papi 5 Papi
 1 Toto 1 Toto
Ligne 511: Ligne 530:
 <code user> <code user>
 cat ~/​Essai-text-processing/​users-sort-uniq cat ~/​Essai-text-processing/​users-sort-uniq
-# Retour :+</​code>​ 
 +<​code>​
 003 Zaza 003 Zaza
 01 Nani 01 Nani
Ligne 527: Ligne 547:
  
 ===Préparation === ===Préparation ===
-Création du fichier "​~/​Essai-text-processing/​liste-fruits"​+  * Création du fichier "​~/​Essai-text-processing/​liste-fruits" ​:
  
 <code user> <code user>
Ligne 537: Ligne 557:
 </​code>​ </​code>​
  
-Vérification :+  * Vérification :
  
 <code user> <code user>
 cat ~/​Essai-text-processing/​liste-fruits cat ~/​Essai-text-processing/​liste-fruits
-# Retour:+</​code>​ 
 +<​code>​
 1 fraise 1 fraise
 2 abricot 2 abricot
 3 pomme 3 pomme
 </​code>​ </​code>​
-===Découpage ​en taille et répartition en autant de fichiers ===+====Découpage ​par taille et répartition en autant de fichiers ​====
 <​note>​ <​note>​
   * options de découpage par taille :\\   * options de découpage par taille :\\
Ligne 565: Ligne 586:
 </​note>​ </​note>​
  
-  * exemple ​de découpage par taille d'un octet avec le préfixe ​"fruit1b"+  * Exemple ​de découpage par taille d'un octet avec le préfixe ​''​fruit1b''​ :
  
 <code user> <code user>
 split -C 1b ~/​Essai-text-processing/​liste-fruits fruit1b split -C 1b ~/​Essai-text-processing/​liste-fruits fruit1b
 </​code>​ </​code>​
-Le fichier n'est pas lourd et le découpage en taille de 1 byte (=octet) ne le découpe pas : + 
 +>Le fichier n'est pas lourd et le découpage en taille de 1 byte (=octet) ne le découpe pas :  
 <code user> <code user>
 ls fruit1b* ls fruit1b*
-# Retour+</​code>​ 
 +<​code>​
 fruit1baa fruit1baa
 </​code>​ </​code>​
  
-Un seul fichier a été créé ​ +>Un seul fichier a été créé.  
 +  
 <code user> <code user>
 cat fruit1b* cat fruit1b*
-# Retour :+</​code>​ 
 +<​code>​
 1 fraise 1 fraise
 2 abricot 2 abricot
 3 pomme 3 pomme
 </​code>​ </​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 :+>​Le ​fichier ​est créé dans le répertoire dans lequel le terminal est ouvert.\
 +Pour que le fichier créélors du découpage, se retrouve ​dans le répertoire du fichier à découper :
  
 <code user> <code user>
 split -C 1b ~/​Essai-text-processing/​liste-fruits fruit1b && mv fruit1b* ~/​Essai-text-processing/​ split -C 1b ~/​Essai-text-processing/​liste-fruits fruit1b && mv fruit1b* ~/​Essai-text-processing/​
-#puis +</​code>​ 
 +<​code> ​
 ls ~/​Essai-text-processing/​fruit1b* ls ~/​Essai-text-processing/​fruit1b*
-# Retour:+</​code>​ 
 +<​code>​
 /​home/​hypathie/​Essai-text-processing/​fruit1baa /​home/​hypathie/​Essai-text-processing/​fruit1baa
 </​code>​ </​code>​
-Ou+  * Ou encore :
 <code user> <code user>
 cd Essai-text-processing/​ cd Essai-text-processing/​
-# puis:+</​code>​ 
 +<code user>
 split -C 1b ~/​Essai-text-processing/​liste-fruits fruit1b split -C 1b ~/​Essai-text-processing/​liste-fruits fruit1b
-# puis :+</​code>​ 
 +<code user>
 ls fruit1b* ls fruit1b*
 +</​code>​
 +<​code>​
 fruit1baa fruit1baa
 </​code>​ </​code>​
  
-===Découpage par ligne ===+====Découpage par ligne ====
 <​note>​ <​note>​
   * option de découpage par ligne qui détermine le découpage :\\   * option de découpage par ligne qui détermine le découpage :\\
Ligne 616: Ligne 649:
 <code user> <code user>
 cd Essai-text-processing/​ cd Essai-text-processing/​
-# puis:+</​code>​ 
 +<code user>
 split -l 1 ~/​Essai-text-processing/​liste-fruits split -l 1 ~/​Essai-text-processing/​liste-fruits
-# puis:+</​code>​ 
 +<code user>
  ls x*  ls x*
-# Retour:+</​code>​ 
 +<​code>​
 xaa  xab  xac xaa  xab  xac
-# puis:+</​code>​ 
 +<code user>
  cat x*  cat x*
-# Retour :+</​code>​ 
 +<​code>​
 1 fraise 1 fraise
 2 abricot 2 abricot
Ligne 630: Ligne 668:
 </​code>​ </​code>​
  
-=====Les commandes expand et unexpand ===== +=====La commande ​unexpand ===== 
-====unexpand ​==== +La commande "​unexpand" ​peut servir à convertir un groupe ​de sept espaces en une tabulation.
-La commande "​unexpand" ​convertit les groupes ​de espaces en tabulation+
  
 ===Syntaxe === ===Syntaxe ===
Ligne 653: Ligne 690:
 Pour intégrer le contenu d'un fichier avec les redirections et EOF, la touche tabulation ne fonctionne pas. Pour intégrer le contenu d'un fichier avec les redirections et EOF, la touche tabulation ne fonctionne pas.
 </​note>​ </​note>​
 +====Convertir des espaces en tabulation ====
 ===Affichage avec cat : ce sont des espaces === ===Affichage avec cat : ce sont des espaces ===
 <code user> <code user>
Ligne 661: Ligne 699:
          ​03 ​        ​Lili ​        ​lili@hotmail.com ​        ​membre          ​03 ​        ​Lili ​        ​lili@hotmail.com ​        ​membre
 </​code>​ </​code>​
-===conversion ​des espaces en tabulation ===+===Conversion ​des espaces en tabulation ===
 <code user> <code user>
 unexpand -a ~/​Essai-text-processing/​users-infos-espaces unexpand -a ~/​Essai-text-processing/​users-infos-espaces
-# Retour:+</​code>​ 
 +<​code>​
  01   Toto       toto@gmx.fr modo  01   Toto       toto@gmx.fr modo
        ​02 Titi  ​  ​titi@gmail.com membre        ​02 Titi  ​  ​titi@gmail.com membre
Ligne 671: Ligne 710:
 </​code>​ </​code>​
 <​note>​ <​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 +  * 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 espaces consécutifs n'ont pas été convertis en tabulation  +  * Les groupes de moins de sept espaces consécutifs n'ont pas été convertis en tabulation 
-</note +</note> 
-====La commande "​expand"​ ==== +=====La commande "​expand" ​===== 
-La commande "​expand" ​convertit ​les tabulations en espaces+La commande "​expand" ​peut servir à convertir ​les tabulations en espaces.
  
 ===Syntaxe === ===Syntaxe ===
Ligne 697: Ligne 736:
  
 </​code>​ </​code>​
-===Convertion des tabulations en espaces===+====Convertion des tabulations en espaces====
  
 <code user> <code user>
Ligne 707: Ligne 746:
  
 </​code>​ </​code>​
-=== déterminer ​le nombre d'​espaces qui remplaceront chaque tabulation=== +==== Déterminer ​le nombre d'​espaces qui remplaceront chaque tabulation==== 
-  * option -t nombre+  * option ​''​-t'' ​nombre
 <code user> <code user>
 expand -t 1 ~/​Essai-text-processing/​users-infos-tabul expand -t 1 ~/​Essai-text-processing/​users-infos-tabul
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