[Shell] Manipulation de fichers

Résolu
Bonjour à tous,
voila j'ai actuellement deux fichiers qui ont la structure suivantes:

fichier 1:
identifiant1 blablalbla
chainequivabien ""
identifiant2 blalvlala
chainequivabien ""
identifiant3 blablalvba
chainequivabien ""
.....

Fichier 2:
identifiant1 mot1
identifiant2 mot2
identifiant3 mot3
.....

Ce que je cherche à faire c'est insérer dans le fichier 1 entre les caractères "" le motX en fonction de l'identifiant associé. Le fichier en sorti devrait donc ressembler à ceci:

identifiant1 blablalbla
chainequivabien "mot1"
identifiant2 blalvlala
chainequivabien "mot2"
identifiant3 blablalvba
chainequivabien "mot3"

Si quelque'un pouvait m'aider car je ne vois absoluement pas comment faire (et je dois faire ça en shell).

Merci d'avance à tous
Configuration: Windows XP Internet Explorer 6.0

7 réponses

  1. C'est nickel ça marche impec. Désolé du temps de réponse mais je voulais êtr certain de comprendre ta ligne de commande. Car copier coller sans comprendre, ça sert a rien et on apprend pas.

    Bref encore merci pour ton aide.
    1. Modérateur
      Pas de soucis, et si tu as tout compris c'est encore mieux ;-))
  2. Pas de soucis, je récupère ça dans deux min sur ma bécanne, mais alors en perl je m'y connais encore mois
    1. Modérateur
      Bon je supposerai que les guillemets sont les seuls sur la ligne "chainequivabien" et qu'il n'y en a pas sur la ligne précédente...
      Je supposerai aussi que tu disposes d'une version de "sed" acceptant l'option "-i"...
      jp@MDK:~/tmpfs ssh$ cat fich1
      identifiant1 blablalbla
      chainequivabien ""
      identifiant2 blalvlala
      chainequivabien ""
      identifiant3 blablalvba
      chainequivabien ""
      
      jp@MDK:~/tmpfs ssh$ cat fich2
      identifiant1 mot1
      identifiant2 mot2
      identifiant3 mot3
      
      jp@MDK:~/tmpfs ssh$ cat foo.sh
      #! /bin/sh
      
      #set -xv
      
      while read line
      do
      sed -i "/${line% *}/{n;s/\"\"/\"${line#* }\"/}" fich1
      done < fich2
      
      jp@MDK:~/tmpfs ssh$ ./foo.sh
      
      jp@MDK:~/tmpfs ssh$ cat fich1
      identifiant1 blablalbla
      chainequivabien "mot1"
      identifiant2 blalvlala
      chainequivabien "mot2"
      identifiant3 blablalvba
      chainequivabien "mot3"
      jp@MDK:~/tmpfs ssh$
      
      ;-))
      1. Modérateur
        Salut,

        Alors si c'est pour boulot, et seulement le résultat compte, pour quoi se limiter à shell.
        Perl ne te conviens pas?!
        1. non pas du tout, c'est pour le boulot, je dois faire ça mais je ne suis pas développeur et je n'ai donc pas d'outils à ma disposition.
          ça fait quelques années que je suis plus sur les bancs de l'école ;-)
          1. malheureusement pour moi, shell pur
            1. Modérateur
              Donc c'est un devoir ?
          2. Modérateur
            Salut,

            Tu dois faire ça en shell pur ou tu as le droit d'utiliser d'autres outils ?