Utilisez cet outil Unix astucieux pour traiter du texte sous Linux


  • FrançaisFrançais


  • Unix a toujours excellé dans le traitement de texte, et Linux n’est pas différent. Et les outils pour travailler avec et transformer les fichiers texte existent toujours sur tous les systèmes Linux.

    Comme d’autres systèmes informatiques, les premiers Unix imprimaient sur papier, en utilisant un dispositif d’impression de type machine à écrire. Ces imprimantes offraient des options de formatage limitées, mais avec une application intelligente des outils Unix, vous pouviez préparer des documents d’aspect professionnel.

    L’un de ces outils était le pr outil, pour préparer des documents texte pour l’impression. Explorons comment utiliser les outils Unix standard, tels que le pr processeur et le fmt formateur de texte, pour préparer les fichiers texte à imprimer sur une imprimante de type machine à écrire.

    [ Read also: How I use the Linux fmt command to format text ]

    Impression d’un fichier texte brut

    Disons que nous voulions imprimer la licence MIT, stockée dans un fichier appelé mit.txt. Ce fichier est déjà formaté pour un affichage optimal à l’écran ; les lignes font près de 80 colonnes de large, ce qui convient bien à un terminal standard.

    $ cat mit.txt 
    Copyright (c) <year> <copyright holders>
    
    Permission is hereby granted, free of charge, to any person obtaining a copy
    of this software and associated documentation files (the "Software"), to deal
    in the Software without restriction, including without limitation the rights
    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    copies of the Software, and to permit persons to whom the Software is
    furnished to do so, subject to the following conditions:
    
    The above copyright notice and this permission notice shall be included in all
    copies or substantial portions of the Software.
    
    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    SOFTWARE.

    (Jim Hall, CC BY-SA 40)

    Le papier de l’imprimante a également une largeur de 80 colonnes, du moins sur les imprimantes classiques. Nous pouvons donc également imprimer le fichier sur notre imprimante à l’aide d’une commande telle que lpr. Mais ce n’est pas une façon très intéressante d’imprimer le fichier, et ce ne sera pas très agréable à lire. Par exemple, le document commencera sur la première ligne de la page imprimée, et immédiatement sur le bord gauche du papier.

    Nous pouvons rendre le document plus facile à lire en utilisant le pr commande pour ajouter une marge supérieure. Par défaut, pr inclut la date et l’heure, le nom du fichier et le numéro de page dans l’en-tête supérieur. Par exemple, le haut de notre fichier pourrait ressembler à ceci :

    $ pr mit.txt | head
    
    
    2022-06-24 18:27                     mit.txt                      Page 1
    
    
    Copyright (c) <year> <copyright holders>
    
    Permission is hereby granted, free of charge, to any person obtaining a copy
    of this software and associated documentation files (the "Software"), to deal
    in the Software without restriction, including without limitation the rights

    Dans cet exemple, j’ai utilisé le head commande pour ne regarder que les dix premières lignes de la pr production. La pr La commande ajoute également des lignes vierges supplémentaires au bas de la page, pour fournir une marge inférieure. Les imprimantes à écrire à l’ancienne utilisaient 66 lignes par page, de sorte que le pr la sortie suppose cela aussi. Mais ce fichier s’imprime sur une page, donc je n’ai pas besoin de montrer le bas du fichier ; c’est juste quelques lignes vides.

    Ajout d’une marge gauche et droite

    L’ajout de la marge supérieure facilite la lecture du document, mais nous pouvons faire mieux en ajoutant de l’espace à gauche et à droite de la page imprimée. Cela ajoute effectivement une marge gauche et droite à notre document.

    La première étape consiste à utiliser le fmt commande pour reformater le fichier texte à une largeur différente. Utilisant fmt -w 70 reformate le fichier texte pour utiliser des lignes de 70 colonnes de large. Nous pouvons ajouter un espace vide à gauche du document pour créer une marge de gauche. Utilisant pr -o 5 ajoute 5 espaces au début de chaque ligne de la sortie. Avec le texte plus étroit, nous aurons également environ 5 espaces dans la marge de droite.

    $ fmt -w 70 mit.txt | pr -o 5 | head
         
    
         2022-06-24 18:35                                                  Page 1
    
    
         Copyright (c) <year> <copyright holders>
         
         Permission is hereby granted, free of charge, to any person obtaining
         a copy of this software and associated documentation files (the
         "Software"), to deal in the Software without restriction, including

    C’est ainsi que les utilisateurs d’Unix imprimaient des fichiers en texte brut. Vous pouvez utiliser le même ensemble de commandes pour imprimer des fichiers texte sur une imprimante laser moderne, mais votre imprimante peut attendre un flux de page commande au lieu d’utiliser des lignes vides. Pour ce faire, ajoutez le -f l’option à la pr commande, comme ceci :

    $ fmt -w 70 mit.txt | pr -f -o 5 | lpr

    je vais omettre le -f dans la suite de cet article, mais n’oubliez pas d’ajouter -f au pr commande si vous souhaitez imprimer des documents sur une imprimante laser moderne.

    Modification de l’en-tête

    Vous remarquerez peut-être que lorsque nous redirigeons la sortie de fmt au pr commande, le pr la sortie n’affiche plus le nom du fichier. C’est parce que lorsque nous enchaînons plusieurs commandes ensemble comme ceci, le pr commande ne connaît pas le nom du fichier, il est donc laissé vide. Nous pouvons ajouter le nom du fichier à l’en-tête en utilisant le -h option:

    $ fmt -w 70 mit.txt | pr -h 'mit.txt' -o 5 | head
         
    
         2022-06-24 18:45                     mit.txt                      Page 1
    
    
         Copyright (c) <year> <copyright holders>
         
         Permission is hereby granted, free of charge, to any person obtaining
         a copy of this software and associated documentation files (the
         "Software"), to deal in the Software without restriction, including

    Vous pouvez apporter d’autres modifications à l’en-tête, telles que l’option -D pour modifier le format de la date et de l’heure, ou le remplacer par un nouveau texte.

    $ fmt -w 70 mit.txt | pr -D '6/24/2022' -h 'mit.txt' -o 5 | head -30
         
    
         6/24/2022                         mit.txt                         Page 1
    
    
         Copyright (c) <year> <copyright holders>
         
         Permission is hereby granted, free of charge, to any person obtaining
         a copy of this software and associated documentation files (the
         "Software"), to deal in the Software without restriction, including
         without limitation the rights to use, copy, modify, merge, publish,
         distribute, sublicense, and/or sell copies of the Software, and to
         permit persons to whom the Software is furnished to do so, subject
         to the following conditions:
         
         The above copyright notice and this permission notice shall be
         included in all copies or substantial portions of the Software.
         
         THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
         KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
         WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
         NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
         BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
         AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
         IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
         THE SOFTWARE.

    Imprimer deux colonnes

    Et si vous vouliez donner à un document texte une apparence vraiment élégante sur la page imprimée ? Certains documents tels que les articles techniques peuvent devoir être imprimés dans une mise en page à deux colonnes. La pr La commande peut imprimer du texte dans plusieurs colonnes. Par exemple, -2 imprime sur deux colonnes et -3 imprimera sur trois colonnes.

    Cependant, soyez prudent lorsque vous imprimez du texte sur plusieurs colonnes. Si les lignes sont trop longues, pr peut simplement chevaucher une colonne avec une autre, perdant ainsi du texte dans la sortie. Mais nous pouvons tirer parti de la fmt commande pour reformater le texte à une largeur plus étroite, adaptée à l’impression au format deux colonnes.

    Faisons le calcul : si la page imprimée a une largeur de 80 colonnes et que nous avons laissé 5 espaces à gauche et à droite comme marges de page, cela laisse 70 colonnes pour notre texte. Utilisant fmt -w 35 couperait le texte proprement en deux pour deux colonnes, mais nous ne laisserions peut-être pas beaucoup d’espace entre les colonnes. Utilisons plutôt fmt -w 33 pour reformater la largeur du texte à 33 avant d’envoyer la sortie au pr commande:

    $ fmt -w 33 mit.txt | pr -2 -D '6/24/2022' -h 'mit.txt' -o 5 | head -30
         
    
         6/24/2022                        mit.txt                         Page 1
    
    
         Copyright (c) <year> <copyright     be included in all copies or
         holders>                           substantial portions of the
                                             Software.
         Permission is hereby granted,       
         free of charge, to any person       THE SOFTWARE IS PROVIDED
         obtaining a copy of this            "AS IS", WITHOUT WARRANTY OF
         software and associated             ANY KIND, EXPRESS OR IMPLIED,
         documentation files (the            INCLUDING BUT NOT LIMITED TO THE
         "Software"), to deal in the         WARRANTIES OF MERCHANTABILITY,
         Software without restriction,       FITNESS FOR A PARTICULAR PURPOSE
         including without limitation the    AND NONINFRINGEMENT. IN NO
         rights to use, copy, modify,        EVENT SHALL THE AUTHORS OR
         merge, publish, distribute,         COPYRIGHT HOLDERS BE LIABLE
         sublicense, and/or sell copies      FOR ANY CLAIM, DAMAGES OR OTHER
         of the Software, and to permit      LIABILITY, WHETHER IN AN ACTION
         persons to whom the Software is     OF CONTRACT, TORT OR OTHERWISE,
         furnished to do so, subject to      ARISING FROM, OUT OF OR IN
         the following conditions:           CONNECTION WITH THE SOFTWARE
                                             OR THE USE OR OTHER DEALINGS IN
         The above copyright notice and      THE SOFTWARE.
         this permission notice shall
    
    
    
    
    $ 

    Unix est une excellente plate-forme pour le traitement de texte. Alors que nous utilisons d’autres outils aujourd’hui, y compris HTML dans les navigateurs Web et PDF pour le contenu imprimable, il est bon de savoir comment utiliser les outils Unix existants pour créer des documents professionnels en texte brut.

    Source

    La Rédaction

    L'équipe rédactionnnelle du site

    Pour contacter personnellement le taulier :

    Laisser un commentaire

    Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

    Copy code