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:26]
Hypathie [la commande fmt]
doc:systeme:commandes:les-commandes-join-paste-split-et-nl [08/10/2015 18:56]
milou [La commande expand]
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>​débutant ​avisé}}
-  * 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>à-tester}} 
-    * Création par **Hypathie** 07/​06/​2014 +    * Création par [[user>Hypathie]] le 07/​06/​2014 
-    * Testé par <...> le <​...> ​FIXME +    * Testé par <...> le <...>  
-  * 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 :** 
- 
-Contributeurs,​ les FIXME sont là pour vous aider, supprimez-les une fois le problème corrigé ou le champ rempli ! 
  
 ===== Introduction ===== ===== Introduction =====
-  *[[doc:​systeme:​commandes:​le_debianiste_qui_papillonne#​les-fichiers|Les autres commandes sur les fichiers]]\\ 
-  *[[doc:​systeme:​commandes:​creer#​trouver-un-fichier|Trouver un fichier]] 
-  *[[doc:​systeme:​expand|commande expand]] 
-  *[[doc:​systeme:​split|commande split]] 
  
 +Pour les commandes principales de gestion des fichiers : 
 +  * [[doc:​systeme:​commandes:​creer|Les commandes Linux de gestion des fichiers et répertoires]]
 +
 +Nous allons aborder quelques commandes complémentaires permettant de :
 +
 +  * améliorer l'​affichage : fmt ; nl
 +  * combiner le contenu de fichiers : join ; paste 
 +  * transformer le contenu de fichiers : sort ; split ; tr ; uniq ; expand et unexpand
 +
 +
 +
 +===== la commande fmt=====
 +===Syntaxe ===
 +
 +  fmt [options] [fichier...]
 +  ​
 +=== Préparation===
 +Création du fichier "​~/​Essai-text-processing/​essai-fmt"​
 +
 +<code user>
 +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 !
 +> EOF
 +</​code>​
 +
 +===Affichage du contenu d'un fichier en respectant les mots ===
 +
 +  * Affichage avec la commande ''​cat''​
 +<code user>
 +cat ~/​Essai-text-processing/​essai-fmt
 +</​code>​
 +<file config retour de la commande>​
 +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 !
 +</​file>​
 +
 +>​L'​affichage avec la commande ''​cat''​ peut être difficile à lire.
 +
 +  * Affichage avec la commande ''​fmt''​ :
 +<code user>
 +fmt ~/​Essai-text-processing/​essai-fmt
 +</​code>​
 +<file config retour de la commande>​
 +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 !
 +</​file>​
 +<​note>​
 +  * Par défaut, la commande ''​fmt''​ affiche le contenu d'un fichier par ligne de 75 caractères maximum.
 +
 +  * L'​option ''​-w''​ : pour indiquer le nombre de caractère par ligne
 +<code user>
 +fmt -w 20 ~/​Essai-text-processing/​essai-fmt
 +</​code>​
 +<file config retour de la commande>​
 +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 !
 +</​file>​
 +</​note>​
 +
 +===Combiner fmt et less pour encore plus de lisibilité ===
 +<code user>
 +fmt -w 20 ~/​Essai-text-processing/​essai-fmt | less
 +</​code>​
 +<file config retour de la commande>​
 +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 !
 +(END)
 +</​file>​
 +  * Voir [[doc:​editeurs:​less| la commande less]]
 +
 +=====La commande nl =====
 +Permet de numéroter l'​affichage d'un fichier.
 +
 +===Syntaxe ===
 +
 +  nl [options] [fichier...]
 +
 +===Préparation ===
 +  * copie du fichier ~/.bashrc et visualisation :
 +
 +<code user>
 +cat ~/.bashrc >> ~/​Essai-text-processing/​bashrc-bis
 +</​code>​
 +  * comparons avec l'​affichage de less
 +<code user>
 +less ~/​Essai-text-processing/​bashrc-bis
 +</​code>​
 +
 +<file config retour de la commande>​
 +# ~/.bashrc: executed by bash(1) for non-login shells.
 +# see /​usr/​share/​doc/​bash/​examples/​startup-files (in the package bash-doc)
 +# for examples
 +
 +# If not running interactively,​ don't do anything
 +case $- in
 +    *i*) ;;
 +      *) return;;
 +esac
 +</​file>​
 +>​Premières lignes du retour.
 + 
 +===Affichage numéroté ===
 +<code user>
 +nl ~/​Essai-text-processing/​bashrc-bis
 +</​code>​
 +
 +<file config retour de la commande>​
 +1 # ~/.bashrc: executed by bash(1) for non-login shells.
 +2 # see /​usr/​share/​doc/​bash/​examples/​startup-files (in the package bash-doc)
 +3 # for examples
 + 
 +4 # If not running interactively,​ don't do anything
 +5 case $- in
 +6     *i*) ;;
 +7       *) return;;
 +8 esac
 +</​file>​
 +
 +>​Premières lignes du retour
 +
 +===Pour encore plus de lisibilité ===
 +
 +<code user>
 +fmt -w 65 ~/​Essai-text-processing/​bashrc-bis | nl ~/​Essai-text-processing/​bashrc-bis | less
 +</​code>​
 +<file config retour de la commande>​
 +     ​1 ​ # ~/.bashrc: executed by bash(1) for non-login shells.
 +     ​2 ​ # see /​usr/​share/​doc/​bash/​examples/​startup-files (in the package bash-doc)
 +     ​3 ​ # for examples
 +       
 +     ​4 ​ # If not running interactively,​ don't do anything
 +     ​5 ​ case $- in
 +     ​6 ​     *i*) ;;
 +     ​7 ​       *) return;;
 +     ​8 ​ esac
 +
 +</​file>​
 +
 +>​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 ===
-<​code ​user>+<​code>​
 join [options]... fichier1 fichier2 join [options]... fichier1 fichier2
 </​code>​ </​code>​
Ligne 31: Ligne 189:
 cat ~/​Essai-text-processing/​users cat ~/​Essai-text-processing/​users
 </​code>​ </​code>​
-retour : +<file config retour de la commande>
-<code>+
 01 Toto 01 Toto
 02 Titi 02 Titi
 03 Lili 03 Lili
-</code>+</file>
  
 <code user> <code user>
Ligne 42: Ligne 199:
 </​code>​ </​code>​
  
-Retour : +<file config retour de la commande>
-<code>+
 toto@gmail.com 01 toto@gmail.com 01
 titi@gmx.fr 02 titi@gmx.fr 02
 lili@hotmail.com 03 lili@hotmail.com 03
-</code>+</file>
  
 ===Fusion de ces deux fichiers === ===Fusion de ces deux fichiers ===
  
-<​code>​+<​code ​user>
 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 +<file config retour ​de la commande>
-  * 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>+
 01 Toto toto@gmail.com 01 Toto toto@gmail.com
 02 Titi titi@gmx.fr 02 Titi titi@gmx.fr
 03 Lili lili@hotmail.com 03 Lili lili@hotmail.com
-</code>+</file> 
 +  * 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
 </​code>​ </​code>​
  
-<code>+<file config retour de la commande>
 01 Toto toto@gmail.com 01 Toto toto@gmail.com
 02 Titi titi@gmx.fr 02 Titi titi@gmx.fr
 03 Lili lili@hotmail.com 03 Lili lili@hotmail.com
-</code>+</file>
 =====La commande paste ===== =====La commande paste =====
 ===Syntaxe de la commande paste === ===Syntaxe de la commande paste ===
Ligne 97: Ligne 255:
 <code user> <code user>
 cat ~/​Essai-text-processing/​users cat ~/​Essai-text-processing/​users
-retour ​:+</​code>​ 
 +<file config ​retour ​de la commande>​
 01 Toto 01 Toto
 02 Titi 02 Titi
 03 Lili 03 Lili
 +</​file>​ 
 +<code user>
 cat ~/​Essai-text-processing/​infos-users cat ~/​Essai-text-processing/​infos-users
-#retour ​+</​code>​ 
 +<file config ​retour ​de la commande>​
 toto@gmail.com 01 toto@gmail.com 01
 titi@gmx.fr 02 titi@gmx.fr 02
 lili@hotmail.com 03 lili@hotmail.com 03
-</code>+</file>
  
 ===Regroupement des lignes des deux fichiers === ===Regroupement des lignes des deux fichiers ===
-Retour: 
  
 <code user> <code user>
Ligne 116: Ligne 276:
 </​code>​ </​code>​
  
-Retour : +<file config retour de la commande>
- +
-<code>+
 01 Toto toto@gmail.com 01 01 Toto toto@gmail.com 01
 02 Titi titi@gmx.fr 02 02 Titi titi@gmx.fr 02
 03 Lili lili@hotmail.com 03 03 Lili lili@hotmail.com 03
-</code>+</file>
 ===Concaténation du retour dans un fichier "​paste-users-infos"​ qui sera créé=== ===Concaténation du retour dans un fichier "​paste-users-infos"​ qui sera créé===
  
Ligne 130: Ligne 288:
  
 === Vérification === === Vérification ===
-<code user>+<file config retour de la commande>
 01 Toto toto@gmail.com 01 01 Toto toto@gmail.com 01
 02 Titi titi@gmx.fr 02 02 Titi titi@gmx.fr 02
 03 Lili lili@hotmail.com 03 03 Lili lili@hotmail.com 03
-</code>+</file>
  
-===== 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 ===== =====la commande tr =====
Ligne 273: Ligne 304:
 <code user> <code user>
 cat ~/​Essai-text-processing/​tr-essai cat ~/​Essai-text-processing/​tr-essai
-retour:+</​code>​ 
 +<file config ​retour ​de la commande>​
 Pierre Paul Jacques Pierre Paul Jacques
-</code>+</file>
  
 <code user> <code user>
 tr P p  < ~/​Essai-text-processing/​tr-essai tr P p  < ~/​Essai-text-processing/​tr-essai
-pierre paul Jacques 
 </​code>​ </​code>​
 +<file config retour de la commande>​
 +pierre paul Jacques
 +</​file>​
  
 <code user> <code user>
 cat ~/​Essai-text-processing/​tr-essai cat ~/​Essai-text-processing/​tr-essai
-# retour: 
-Pierre Paul Jacques 
 </​code>​ </​code>​
 +<file config retour de la commande>​
 +Pierre Paul Jacques
 +</​file>​
  
 <code user> <code user>
 tr P X  < ~/​Essai-text-processing/​tr-essai tr P X  < ~/​Essai-text-processing/​tr-essai
-Xierre Xaul Jacques 
 </​code>​ </​code>​
 +<file config retour de la commande>​
 +Xierre Xaul Jacques
 +</​file>​
  
 <code user> <code user>
 cat ~/​Essai-text-processing/​tr-essai cat ~/​Essai-text-processing/​tr-essai
-# retour : 
-Pierre Paul Jacques 
 </​code>​ </​code>​
 +<file config retour de la commande>​
 +Pierre Paul Jacques
 +</​file>​
  
 <code user> <code user>
 tr PJ pj < ~/​Essai-text-processing/​tr-essai tr PJ pj < ~/​Essai-text-processing/​tr-essai
-pierre paul jacques 
 </​code>​ </​code>​
 +<file config retour de la commande>​
 +pierre paul jacques
 +</​file>​
  
  
Ligne 315: Ligne 355:
 <code user> <code user>
 cat ~/​Essai-text-processing/​users-uniq cat ~/​Essai-text-processing/​users-uniq
-# Retour:+</​code>​ 
 +<file config retour de la commande>​
 Papi Papi
 1 Toto 1 Toto
Ligne 323: Ligne 364:
 003 Zaza 003 Zaza
 01 Nani 01 Nani
-</code+</file
-===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 332: Ligne 373:
 <code user> <code user>
 cat ~/​Essai-text-processing/​users-uniq cat ~/​Essai-text-processing/​users-uniq
-# Retour:+</​code>​ 
 +<file config retour de la commande>​
 5 Papi 5 Papi
 1 Toto 1 Toto
Ligne 341: Ligne 383:
 01 Nani 01 Nani
 01 Nani 01 Nani
-</code>+</file>
 <​note>​ <​note>​
 Il faut que les doublons soient consécutifs,​ et que le fichier soit "​trié"​ Il faut que les doublons soient consécutifs,​ et que le fichier soit "​trié"​
Ligne 351: Ligne 393:
 <code user> <code user>
 cat ~/​Essai-text-processing/​users-sort-uniq cat ~/​Essai-text-processing/​users-sort-uniq
-# Retour :+</​code>​ 
 +<file config retour de la commande>​
 003 Zaza 003 Zaza
 01 Nani 01 Nani
Ligne 359: Ligne 402:
 4 Mami 4 Mami
 5 Papi 5 Papi
-</code>+</file>
  
 =====La commande split ===== =====La commande split =====
Ligne 367: Ligne 410:
  
 ===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 377: Ligne 420:
 </​code>​ </​code>​
  
-Vérification :+  * Vérification :
  
 <code user> <code user>
 cat ~/​Essai-text-processing/​liste-fruits cat ~/​Essai-text-processing/​liste-fruits
-# Retour:+</​code>​ 
 +<file config retour de la commande>​
 1 fraise 1 fraise
 2 abricot 2 abricot
 3 pomme 3 pomme
-</code+</file
-===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 405: Ligne 449:
 </​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 
-fruit1baa 
 </​code>​ </​code>​
 +<file config retour de la commande>​
 +fruit1baa
 +</​file>​
  
-Un seul fichier a été créé ​ +>Un seul fichier a été créé.  
 +  
 <code user> <code user>
 cat fruit1b* cat fruit1b*
-# Retour :+</​code>​ 
 +<file config retour de la commande>​
 1 fraise 1 fraise
 2 abricot 2 abricot
 3 pomme 3 pomme
-</code+</file
-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 user> ​
 ls ~/​Essai-text-processing/​fruit1b* ls ~/​Essai-text-processing/​fruit1b*
-# Retour: 
-/​home/​hypathie/​Essai-text-processing/​fruit1baa 
 </​code>​ </​code>​
-Ou+<file config retour de la commande>​ 
 +/​home/​hypathie/​Essai-text-processing/​fruit1baa 
 +</​file>​ 
 +  * 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*
-fruit1baa 
 </​code>​ </​code>​
 +<file config retour de la commande>​
 +fruit1baa
 +</​file>​
  
-===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 456: Ligne 512:
 <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>​ 
 +<file config retour de la commande>​
 xaa  xab  xac xaa  xab  xac
-# puis:+</​file>​ 
 +<code user>
  cat x*  cat x*
-# Retour :+</​code>​ 
 +<file config retour de la commande>​
 1 fraise 1 fraise
 2 abricot 2 abricot
 3 pomme 3 pomme
-</code>+</file> 
 + 
 +=====La commande unexpand ===== 
 +La commande "​unexpand"​ peut servir à convertir un groupe de sept espaces en une tabulation.
  
-===== la commande fmt===== 
 ===Syntaxe === ===Syntaxe ===
  
-  ​fmt [options] [fichier...] +  ​unexpand ​[-a] [fichier...]
-   +
-=== préparation=== +
-Création du fichier "​~/​Essai-text-processing/​essai-fmt"​+
  
 +=== 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> <code user>
-cat > ~/​Essai-text-processing/​essai-fmt <<​EOF +cat > ~/​Essai-text-processing/​users-infos-espaces<<​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 !+        01        Toto        toto@gmx.fr        modo 
 +>        02       ​Titi ​      ​titi@gmail.com       ​membre 
 +>          03         ​Lili ​        ​lili@hotmail.com         ​membre
 > EOF > EOF
 </​code>​ </​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>​
 +====Convertir des espaces en tabulation ====
 +===Affichage avec cat : ce sont des espaces ===
 +<code user>
 +cat ~/​Essai-text-processing/​users-infos-espaces</​code>​
 +<file config retour de la commande>​
 +        01        Toto        toto@gmx.fr ​       modo
 +       ​02 ​      ​Titi ​      ​titi@gmail.com ​      ​membre
 +         ​03 ​        ​Lili ​        ​lili@hotmail.com ​        ​membre</​file>​
  
-===Affichage du contenu d'un fichier ​en respectant les mots === +===Conversion des espaces ​en tabulation ​===
-  * L'​affichage avec la commande "​cat"​ est parfois difficile à lire:+
 <code user> <code user>
-cat ~/​Essai-text-processing/​essai-fmt +unexpand -a ~/​Essai-text-processing/​users-infos-espaces
-# Retour : +
-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 !+
 </​code>​ </​code>​
 +<file config retour de la commande>​
 + 01   Toto       toto@gmx.fr modo
 +       ​02 Titi  ​  ​titi@gmail.com membre
 + 03     Lili lili@hotmail.com  ​ membre
  
-  * Affichage avec la commande "​fmt"​ : +</file>
-<code user> +
-fmt ~/Essai-text-processing/​essai-fmt +
-# Retour : +
-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 ! +
-</code>+
 <​note>​ <​note>​
-Par défaut, la commande "​fmt"​ affiche le contenu d'un fichier par ligne de 75 caractères maximum.+  * Option ​''​-a''​ pour que la conversion des espaces ait lieu partout et pas seulement pour les espaces constituant la première colonne ​de droite. 
 +  * Les groupes de moins de sept espaces consécutifs n'ont pas été convertis en tabulation
 </​note>​ </​note>​
-===Options utiles ​=== +=====La commande "​expand" ​===== 
-  * -w : pour indiquer le nombre de caractère par ligne +La commande ​"​expand"​ peut servir à convertir les tabulations en espaces.
-<code user> +
-fmt -w 20 ~/​Essai-text-processing/​essai-fmt +
-# Retour : +
-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 ! +
-</​code>​ +
-===Combiner fmt et less pour encore plus de lisibilité ​=== +
-<code user> +
-fmt -w 20 ~/​Essai-text-processing/​essai-fmt | less +
-# Retour : +
-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 ! +
-(END) +
- +
-</​code>​ +
-  * Voir [[doc:​editeurs:​less| la commande less]] +
-=====La commande ​nl ===== +
-Permet de numéroter l'​affichage d'un fichier.+
  
 ===Syntaxe === ===Syntaxe ===
  
-  ​nl [options] [fichier...]+  ​expand ​[-t numero] [fichier...]
  
 ===Préparation === ===Préparation ===
-  * copie du fichier ~/.bashrc et visualisation : +Soit le fichier ​"~/Essai-text-processing/​users-infos-tabul"​ contenant des tabulations
 <code user> <code user>
-cat ~/.bashrc >> ~/​Essai-text-processing/​bashrc-bis+unexpand -a ~/Essai-text-processing/​users-infos-espaces ​> ~/​Essai-text-processing/​users-infos-tabul
 </​code>​ </​code>​
-  * comparons avec l'​affichage de less+ 
 +=== Visualisation=== 
 <code user> <code user>
-less ~/​Essai-text-processing/​bashrc-bis +cat ~/​Essai-text-processing/​users-infos-tabul</​code>​ 
-</​code>​ +<file config ​retour ​de la commande
-Extrait du retour ​+ 01   Toto       toto@gmx.fr modo 
-<code user+       ​02 Titi  ​  ​titi@gmail.com membre 
-# ~/.bashrc: executed by bash(1) for non-login shells+  ​03  ​   Lili lili@hotmail.com  ​ membre
-# see /​usr/​share/​doc/​bash/​examples/​startup-files (in the package bash-doc) +
-# for examples+
  
-# If not running interactively,​ don't do anything +</file
-case $- in +====Convertion des tabulations en espaces====
-    *i*) ;; +
-      *) return;; +
-esac +
-[...] +
-===Affichage numéroté === +
-<code> +
-nl ~/Essai-text-processing/​bashrc-bis +
-</code user> +
-Extrait du retour : +
-<​code>​ +
-     1 # ~/.bashrc: executed by bash(1) for non-login shells. +
-     2 # see /​usr/​share/​doc/​bash/​examples/​startup-files (in the package bash-doc) +
-     3 # for examples +
-        +
-     4 # If not running interactively,​ don't do anything +
-     ​5 case $- in +
-     ​6  ​   *i*) ;; +
-     ​7  ​     *) return;; +
-     ​8 esac +
- ​[...] +
-</code user+
-===Pour encore plus de lisibilité ​===+
  
 <code user> <code user>
-fmt -w 65 ~/​Essai-text-processing/​bashrc-bis | nl ~/Essai-text-processing/​bashrc-bis | less +expand ​~/​Essai-text-processing/​users-infos-tabul</​code>​ 
-</​code>​+<file config retour de la commande>​ 
 +        01        Toto        toto@gmx.fr ​       modo 
 +       ​02 ​      ​Titi ​      ​titi@gmail.com ​      ​membre 
 +         ​03 ​        ​Lili ​        ​lili@hotmail.com ​        ​membre
  
-Extrait du retour :+</​file>​ 
 +==== Déterminer le nombre d'​espaces qui remplaceront chaque tabulation==== 
 +  * option ''​-t''​ nombre 
 +<code user> 
 +expand -t 1 ~/​Essai-text-processing/​users-infos-tabul</​code>​ 
 +<file config ​retour ​de la commande>​ 
 + ​01 ​  ​Toto ​      ​toto@gmx.fr ​ modo 
 +       02 Titi    titi@gmail.com membre 
 +  03     ​Lili ​ lili@hotmail.com ​  ​membre 
 +</​file>​ 
 + 
 +====Aller plus loin avec les commandes expand et unexpand ==== 
 +Voir [[doc:​systeme:​expand |expand]]
  
-<​code>​ 
-     ​1 ​ # ~/.bashrc: executed by bash(1) for non-login shells. 
-     ​2 ​ # see /​usr/​share/​doc/​bash/​examples/​startup-files (in the package bash-doc) 
-     ​3 ​ # for examples 
-        
-     ​4 ​ # If not running interactively,​ don't do anything 
-     ​5 ​ case $- in 
-     ​6 ​     *i*) ;; 
-     ​7 ​       *) return;; 
-     ​8 ​ esac 
-        
-[...] 
-</​code>​ 
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