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 :

copie contenu d'un fichier dans un autre fichier avec sed


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 65
    Par défaut copie contenu d'un fichier dans un autre fichier avec sed
    Bonjour à tous,

    Alors voila mon petit problème, simple pour certain d'entre vous je pense

    j'ai une liste de fichier dans un fichierA :
    genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    /fichier/blabla1
    /fichier/blabla2
    /fichier/blabla3
    etc...
    et j'aimerai inserer sont contenu dans un autre fichier en tant que deuxième colonne mais en la modifiant un peu

    contenu fichierB :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    /miam/ouh1
    /miam/ouh2
    /miam/ouh3
    etc...
    et j'aimerai avoir un fichierMix avec le contenu suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    /miam/ouh1 fichier/blabla1
    /miam/ouh2 fichier/blabla2
    /miam/ouh3 fichier/blabla1
    enlever le / de chaque ligne du fichierA avant de l'inserer dans le fichierB
    je sais faire mais inserer le fichierA comme deuxieme colonne du fichierB...

    une idée ?

    merci d'avance

  2. #2
    Membre éprouvé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2008
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2008
    Messages : 72
    Par défaut
    Ca doit être simplifiable :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    #!/bin/bash
    f1=test1
    f2=test2
    final=test3
    numline=`cat $f1 | wc -l`
    for i in $(seq $numline);
    do
            pre='p'
            var=$i$pre
            finalvar1=`cat $f1 | sed -n $var`
            finalvar2=`cat $f2 | sed -n $var`
            echo $finalvar1 $finalvar2 >> $final
    done;

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 65
    Par défaut
    je n'ai qu'un mot : merci

  4. #4
    Membre éprouvé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2008
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2008
    Messages : 72
    Par défaut
    Citation Envoyé par zorooo Voir le message
    je n'ai qu'un mot : merci
    Bon, dans ce cas là, si j'ai bien suivi mes cours, il faut mettre résolu

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 672
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    exec 3<fichierA
    exec 4<fichierB
    while read colA 0<&3
     do
       read colB 0<&4
       echo "$colB ${colA#/*}"
    done
    /miam/ouh1 fichier/blabla1
    /miam/ouh2 fichier/blabla2
    /miam/ouh3 fichier/blabla3
    et p'i c'est tout !
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 65
    Par défaut
    comme dab plusieurs façon de faire
    faut que je trouve le temps pour etudier les autres histoire de progresser un peu

    merci

  7. #7
    Membre émérite Avatar de jmelyn
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2007
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Septembre 2007
    Messages : 703
    Par défaut
    Bonsoir,

    J'ai quelque chose qui ressemble à ce qu'a produit N_BaH, sans avoir regardé.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    exec 3< file_1
    exec 4< file_2
    > file_out
     
    while [ 1 ]
    do
      read line_1 <&3 && read line_2 <&4 && echo "$line_1 ${line_2#/}" >> file_out || break
    done

  8. #8
    Membre expérimenté
    Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2007
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2007
    Messages : 248
    Par défaut
    Si tes deux fichiers ont le même nombre de ligne,

    lire chaque ligne des deux fichiers dans deux variables séparées col1 et col2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    tant que pas fini
    faire
            lire col1 depuis fichier1
            lire col2 depuis fichier2
            col2=`echo "$col2" | sed "s/^\///"`
            echo "$col1 $col2 >> fic.temp
    fait
     
    cp fic.temp monfichierdefinitif

Discussions similaires

  1. Copier contenu d'une feuille dans un autre fichier
    Par neo2k2 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 26/10/2007, 18h01
  2. Réponses: 4
    Dernier message: 28/08/2007, 17h11
  3. Réponses: 1
    Dernier message: 15/05/2007, 16h55
  4. vba copie contenu d'un champs dans un autre
    Par juju124 dans le forum VBA Access
    Réponses: 1
    Dernier message: 02/05/2007, 17h15
  5. Réponses: 13
    Dernier message: 27/10/2006, 11h50

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