Pour ce que je comprends, sortir Perl pour ça est un peu overkill. Un essai en AWK qui devrait te donner ce que je conçois être le résultat final (/tmp/csv dans le même ordre mais avec les entrées présentes dans mydomain.com précédées d'un ";", puis le contenu de mydomain.com avec par ligne une tabulation séparant le premier champ initial de la concaténation des deux autres) :
(FNR==NR){split($0,t,",")CSV[t[1]]# La clé de contrôleLINE[C++]=t[1]"\t"t[2]t[3]next}($1inCSV){printf("%s",";")}{print}END{for(i=0;i<C;i++)printLINE[i]}
Pour exécuter, il suffit de lancer : awk -f ce_script.awk mydomain.com /tmp/csv. Le résultat sera envoyé sur la sortie standard que tu pourras rediriger vers n'importe quel fichier (plus prudent àmha que de bosser directement sur la base initiale).
Bien sûr, je n'ai pas testé plus que ça, et si tu n'es pas attaché à l'ordre des lignes, on peut optimiser. ;)
# En AWK
Posté par Ignatz Ledebur . En réponse au message Besoin d'aide pour mon premier script en perl: parser un fichier BIND. Évalué à 3.
Pour ce que je comprends, sortir Perl pour ça est un peu overkill. Un essai en AWK qui devrait te donner ce que je conçois être le résultat final (/tmp/csv dans le même ordre mais avec les entrées présentes dans mydomain.com précédées d'un ";", puis le contenu de mydomain.com avec par ligne une tabulation séparant le premier champ initial de la concaténation des deux autres) :
Pour exécuter, il suffit de lancer :
awk -f ce_script.awk mydomain.com /tmp/csv. Le résultat sera envoyé sur la sortie standard que tu pourras rediriger vers n'importe quel fichier (plus prudent àmha que de bosser directement sur la base initiale).Bien sûr, je n'ai pas testé plus que ça, et si tu n'es pas attaché à l'ordre des lignes, on peut optimiser. ;)