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 Dernière révision Les deux révisions suivantes | ||
doc:systeme:expand [04/10/2013 15:52] captnfab |
doc:systeme:expand [20/09/2015 19:38] milou [expand] |
||
---|---|---|---|
Ligne 2: | Ligne 2: | ||
* Objet : expand | * Objet : expand | ||
- | * Niveau requis : {{tag>débutant en-chantier}} | + | * Niveau requis : {{tag>débutant avisé}} |
- | * Commentaires : //La commande expand. // | + | * Commentaires : //Remplacer, dans un fichier comme dans un flux, chaque caractère de tabulation par une suite de caractères “espace”. // |
* 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 à-tester à-placer}} | + | * Suivi : {{tag>à-tester}} |
- | * Création par **MicP** 03/10/2013 | + | * Création par [[user>MicP]] 03/10/2013 |
* Testé par <...> le <...> FIXME | * Testé par <...> le <...> FIXME | ||
* Commentaires sur le forum : [[http://debian-facile.org/viewtopic.php?id=7531 | Lien vers le forum concernant ce tuto]] ((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) | * Commentaires sur le forum : [[http://debian-facile.org/viewtopic.php?id=7531 | Lien vers le forum concernant ce tuto]] ((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) | ||
Ligne 17: | Ligne 17: | ||
Les caractères de tabulation sont interprétés différemment en fonction du terminal qui va devoir les afficher.\\ | Les caractères de tabulation sont interprétés différemment en fonction du terminal qui va devoir les afficher.\\ | ||
- | Lors d'un "copié/collé" de la sortie d'une commande contenant des caractères de tabulation, l'affichage du texte obtenu dans les posts du forum pourrait est déformé du fait de cette différence d'interprétation des caractères de tabulation. | + | Lors d'un "copié/collé" de la sortie d'une commande contenant des caractères de tabulation, l'affichage du texte obtenu dans les posts du forum pourrait apparaître déformé du fait de cette différence d'interprétation des caractères de tabulation. |
- | + | ||
- | La commande "''expand''" permet de remplacer, dans un fichier comme dans un flux, chaque caractère de tabulation par une série d'espaces (8 par défaut). | + | |
+ | La commande ''expand'' permet de remplacer, dans un fichier comme dans un flux, chaque caractère de tabulation par une suite de caractères "espace" (8 par défaut). | ||
===== Utilisation ===== | ===== Utilisation ===== | ||
- | Pour convertir toutes les tabulations du fichier ''~/fichier'' en espaces et enregistrer le résultat dans ''~/nouveau_fichier'' : | + | Pour convertir en une suite de 8 caractères "espace", chaque caractère de tabulation contenu dans le fichier ''~/fichier'', et enregistrer le résultat dans le fichier ''~/nouveau_fichier'': |
<code user>expand ~/fichier > ~/nouveau_fichier</code> | <code user>expand ~/fichier > ~/nouveau_fichier</code> | ||
Ligne 29: | Ligne 28: | ||
<code user>commande | expand >> ~/commande.log</code> | <code user>commande | expand >> ~/commande.log</code> | ||
- | Pour convertir l'affichage de la commande ''commande'' en remplaçant les tabulations par 3 espaces et afficher le résultat : | + | Pour convertir l'affichage de la commande ''commande'' en remplaçant les tabulations par 3 caractères "espace" et afficher le résultat : |
<code user>commande | expand -t 3</code> | <code user>commande | expand -t 3</code> | ||
+ | <note info>Les 3 lignes de commande ci-dessus utilisent les caractères de [[doc:programmation:shell:shell#rediriger_l_affichage|redirection de flux]] ''>'', ''>>'' et ''|''.\\ Voir la documentation sur le [[:doc:programmation:shell:]] pour plus d'informations.</note> | ||
===== TPs ===== | ===== TPs ===== | ||
==== Application à la commande ''chage'' ==== | ==== Application à la commande ''chage'' ==== | ||
- | Ci dessous, un copié/collé du retour de [[doc:systeme:chage|la commande chage]] dont les caractères de tabulation posent problème, car chaque caractère de tabulation est converti en une suite de //4 caractères espaces// une fois affichée dans un post du forum. | + | Ci dessous, un copié/collé du retour de [[doc:systeme:chage|la commande chage]] dont les caractères de tabulation posent problème, car chaque caractère de tabulation est converti en une suite de //4 caractères "espace"// une fois affiché dans un post du forum. |
- | <code user>tmpLang=$LANG && LANG=C;chage -l $USER;LANG=$tmpLang</code> | + | <code user>tmpLang=$LANG && LANG=C; chage -l $USER; LANG=$tmpLang</code> |
Donne une fois copié/collé dans le forum : | Donne une fois copié/collé dans le forum : | ||
<code> | <code> | ||
Ligne 50: | Ligne 49: | ||
</code> | </code> | ||
- | Alors qu'en utilisant la commande "''expand''" au travers d'un [[doc:programmation:shell:pipe|pipe]], chaque caractère de tabulation sera remplacé par une suite de //8 caractères espaces//.\\ | + | Alors qu'en utilisant la commande ''expand'' au travers d'un [[doc:programmation:shell:pipe|pipe]] ''|'', chaque caractère de tabulation sera remplacé par une suite de //8 caractères "espace"//.\\ |
Dès lors, le contenu du copié/collé ne comportant plus de caractère de tabulation, l'affichage résultant dans le forum gardera la même apparence que dans la fenêtre du terminal qui a servi de source à la copie : | Dès lors, le contenu du copié/collé ne comportant plus de caractère de tabulation, l'affichage résultant dans le forum gardera la même apparence que dans la fenêtre du terminal qui a servi de source à la copie : | ||
<code user> | <code user> | ||
- | tmpLang=$LANG && LANG=C;chage -l $USER | expand;LANG=$tmpLang</code> | + | tmpLang=$LANG && LANG=C; chage -l $USER | expand; LANG=$tmpLang</code> |
Donnera collé dans le forum : | Donnera collé dans le forum : | ||
Ligne 69: | Ligne 68: | ||
- | === Note === | + | <note important>J'ai dû modifier la variable ''LANG'' pour obtenir la version américaine de la sortie de [[doc:systeme:chage|la commande chage]] car la version française de cette commande présente justement un défaut au niveau des caractères de tabulation.\\ |
- | + | ||
- | J'ai dû modifier la variable ''LANG'' pour obtenir la version américaine de la sortie de la commande **chage** car la version française présente justement un défaut au niveau des caractères de tabulation.\\ | + | |
Si je trouve une autre commande retournant des caractères de tabulation dans sa version française, je n'aurai pas à modifier et restaurer la variable **LANG**, et ce dokuWiKi en deviendra plus clair. | Si je trouve une autre commande retournant des caractères de tabulation dans sa version française, je n'aurai pas à modifier et restaurer la variable **LANG**, et ce dokuWiKi en deviendra plus clair. | ||
- | //Donc en chantier pour l'instant...// | + | //Donc en chantier pour l'instant...//</note> |
Ligne 81: | Ligne 78: | ||
<code user>infocmp $TERM</code> | <code user>infocmp $TERM</code> | ||
+ | <file terminal extrait du retour de la commande ci-dessus> | ||
+ | # Reconstructed via infocmp from file: /lib/terminfo/x/xterm | ||
+ | xterm|xterm-debian|X11 terminal emulator, | ||
+ | am, bce, km, mc5i, mir, msgr, npc, xenl, | ||
+ | colors#8, cols#80, it#8, lines#24, pairs#64, | ||
+ | acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, | ||
+ | .../... | ||
+ | </file> | ||
+ | Dans le retour de commande ci-dessus, "it#8" indique que les caractères de tabulation occuperont un espace équivalent à une suite de 8 caractères "espace" dans le terminal "xterm". | ||
<code user>man expand</code> | <code user>man expand</code> | ||
<code user>man unexpand</code> | <code user>man unexpand</code> |