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 [08/06/2014 08:05] Hypathie [la commande fmt] |
doc:systeme:commandes:les-commandes-join-paste-split-et-nl [08/06/2014 10:44] Hypathie [Les commandes : d'autres commandes pour la gestion des fichiers-texte] |
||
---|---|---|---|
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 **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 : [[url | 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 :** | ||
Ligne 15: | Ligne 14: | ||
===== 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 : fnt ; nl | ||
+ | * combiner le contenu de fichiers : join ; paste | ||
+ | * transformer le contenu de fichier : 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 === | ||
+ | * L'affichage avec la commande "cat" est parfois difficile à lire: | ||
+ | <code user> | ||
+ | cat ~/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> | ||
+ | |||
+ | * Affichage avec la commande "fmt" : | ||
+ | <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> | ||
+ | Par défaut, la commande "fmt" affiche le contenu d'un fichier par ligne de 75 caractères maximum. | ||
+ | </note> | ||
+ | ===Options utiles === | ||
+ | * -w : pour indiquer le nombre de caractère par ligne | ||
+ | <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 === | ||
+ | |||
+ | 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> | ||
+ | Extrait du retour : | ||
+ | <code user> | ||
+ | # ~/.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 | ||
+ | [...] | ||
+ | ===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> | ||
+ | fmt -w 65 ~/Essai-text-processing/bashrc-bis | nl ~/Essai-text-processing/bashrc-bis | less | ||
+ | </code> | ||
+ | |||
+ | 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> | ||
+ | |||
+ | <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 470: | Ligne 621: | ||
</code> | </code> | ||
- | ===== la commande fmt===== | + | =====Les commandes expand et unexpand ===== |
+ | ====unexpand ==== | ||
+ | La commande "unexpand" convertit les groupes de 7 espaces en 1 tabulation | ||
===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> | |
- | ===Affichage du contenu d'un fichier en respectant les mots === | + | Ci-dessus ce sont plusieurs espaces qui sont insérés entre les chaînes de caractères. |
- | * L'affichage avec la commande "cat" est parfois difficile à lire: | + | 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> | <code user> | ||
- | cat ~/Essai-text-processing/essai-fmt | + | cat ~/Essai-text-processing/users-infos-espaces |
# Retour : | # Retour : | ||
- | chez debian-facile c'est facile ... très facile ... très très facile ... très tr | + | 01 Toto toto@gmx.fr modo |
- | ès très très très très facile ... facile et encore facile ! | + | 02 Titi titi@gmail.com membre |
+ | 03 Lili lili@hotmail.com membre | ||
</code> | </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 | ||
- | * Affichage avec la commande "fmt" : | ||
- | <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> | </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 constituants la première colonnes de droite |
- | </note> | + | * Les groupes de moins de 7 espaces consécutifs n'ont pas été convertis en tabulation |
- | ===Options utiles === | + | </note |
- | * -w : pour indiquer le nombre de caractère par ligne | + | ====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> | <code user> | ||
- | fmt -w 20 ~/Essai-text-processing/essai-fmt | + | 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 : | # Retour : | ||
- | chez debian-facile | + | 01 Toto toto@gmx.fr modo |
- | c'est facile | + | 02 Titi titi@gmail.com membre |
- | ... très facile | + | 03 Lili lili@hotmail.com membre |
- | ... très très | + | |
- | facile ... très | + | |
- | très très très | + | |
- | très très facile | + | |
- | ... facile et | + | |
- | encore facile ! | + | |
</code> | </code> | ||
- | ===Combiner fmt et less pour encore plus de lisibilité === | + | ===Convertion des tabulations en espaces=== |
<code user> | <code user> | ||
- | fmt -w 20 ~/Essai-text-processing/essai-fmt | less | + | expand ~/Essai-text-processing/users-infos-tabul |
# Retour : | # Retour : | ||
- | chez debian-facile | + | 01 Toto toto@gmx.fr modo |
- | c'est facile | + | 02 Titi titi@gmail.com membre |
- | ... très facile | + | 03 Lili lili@hotmail.com membre |
- | ... très très | + | |
- | facile ... très | + | |
- | très très très | + | |
- | très très facile | + | |
- | ... facile et | + | |
- | encore facile ! | + | |
- | (END) | + | |
</code> | </code> | ||
- | * Voir [[doc:editeurs:less| la commande less]] | + | === déterminer le nombre d'espaces qui remplaceront chaque tabulation=== |
+ | * option -t nombre | ||
<code user> | <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 ==== | |
- | =====La commande nl ===== | + | Voir : [[doc:systeme:expand |expand]] |