[Shell] Manipulation de fichers

Résolu/Fermé
raktabija Messages postés 5 Date d'inscription mardi 5 mai 2009 Statut Membre Dernière intervention 5 mai 2009 - 5 mai 2009 à 14:40
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 - 5 mai 2009 à 15:50
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
A voir également:

7 réponses

jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
5 mai 2009 à 15:02
Salut,

Tu dois faire ça en shell pur ou tu as le droit d'utiliser d'autres outils ?
0
raktabija Messages postés 5 Date d'inscription mardi 5 mai 2009 Statut Membre Dernière intervention 5 mai 2009
5 mai 2009 à 15:09
malheureusement pour moi, shell pur
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
5 mai 2009 à 15:10
Donc c'est un devoir ?
0
raktabija Messages postés 5 Date d'inscription mardi 5 mai 2009 Statut Membre Dernière intervention 5 mai 2009
5 mai 2009 à 15:18
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 ;-)
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
5 mai 2009 à 15:20
Salut,

Alors si c'est pour boulot, et seulement le résultat compte, pour quoi se limiter à shell.
Perl ne te conviens pas?!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
5 mai 2009 à 15:23
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$
;-))
0
raktabija Messages postés 5 Date d'inscription mardi 5 mai 2009 Statut Membre Dernière intervention 5 mai 2009
5 mai 2009 à 15:23
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
0
raktabija Messages postés 5 Date d'inscription mardi 5 mai 2009 Statut Membre Dernière intervention 5 mai 2009
5 mai 2009 à 15:48
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.
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
5 mai 2009 à 15:50
Pas de soucis, et si tu as tout compris c'est encore mieux ;-))
0