IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Concaténer des chaînes et des contenus de fichiers


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 124
    Par défaut Concaténer des chaînes et des contenus de fichiers
    Bonjour à tous,

    Je souhaiterais envoyer via un pipe à un programme un input composé de contenu de fichiers et de chaînes de caractères introduites dans le shell.

    En clair, disons que j'ai les fichiers fichier_1.txt fichier_2.txt fichier_3.txt.

    Pour les concaténer, il suffirait de faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ cat fichier_1.txt fichier_2.txt fichier_3.txt | enscript -o fichier.ps
    Mais je voudrais intercaler des titres pour chacun de ces fichiers, ce qui donnerait quelque chose comme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ cat "titre 1" fichier_1.txt "titre 2" fichier_2.txt "titre 3 " fichier_3.txt | enscript -o fichier.ps
    ... ce qui est fautif, je le sais bien

    Comment procéder ? Idéalement, la commande devrait être enregistrée dans un Makefile.

    Merci d'avance,

  2. #2
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 694
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 694
    Par défaut
    Bonjour,

    Code BASH : Sélectionner tout - Visualiser dans une fenêtre à part
    $ cat <(echo "titre 1") fichier_1.txt <(echo "titre 2") fichier_2.txt <(echo "titre 3") fichier_3.txt | enscript -o fichier.ps
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Membre éprouvé
    Homme Profil pro
    consultant ETL
    Inscrit en
    Septembre 2008
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : consultant ETL
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2008
    Messages : 97
    Par défaut proposition
    chez moi en bash, ceci fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    $ ( echo "titre 1" ; cat fichier_1.txt ; echo "titre 2" ; cat fichier_2.txt  ) | ma commande qui suit....

  4. #4
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 694
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 694
    Par défaut
    le sous-shell induit par les parenthèses n'est pas nécessaire, et peut être remplacé par une liste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    { cat fic_1; echo foo; cat fic_; echo bar;} | command
    mais ça appelle cat pour chaque fichier, ce qui ne permet pas de tirer le meilleur parti de ce que cat sait faire : concaténer !
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

Discussions similaires

  1. Réponses: 16
    Dernier message: 25/09/2009, 16h10
  2. [XL-2003] Découper des chaînes de caractère d'un fichier et les stocker dans un tableau
    Par -Naek- dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 09/04/2009, 19h24
  3. Réponses: 13
    Dernier message: 31/08/2007, 14h53
  4. Changer des chaînes de caractères dans un fichier
    Par troumad dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 10/11/2006, 09h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo