Signaler

Extractions de données entre 2 fichiers

Posez votre question Coin-C44 - Dernière réponse le 15 nov. 2017 à 09:36 par Coin-c
Bonsoir,

- J'ai un fichier "Editions"
Editions des produits
"A";"CTF";"ALPHA";" BETA";
"CTF";"AFFECT";"12300220";"98707718"
"CTF";"AFFECT";"12302223";"98707719"
"CTF";"AFFECT";"24621010";"98707720"
"CTF";"AFFECT";"24623015";"98707721"
"CTF";"AFFECT";"25200120";"98707723"
"CTF";"AFFECT";"25201289";"98707724"


- et mon fichier "Articles"
NOM|987|7718|CLEM|JEAN-JACQUES|
99|987|7718|01022018|
NOM|987|7719|AIT BELHAND|SAMUEL|
88|987|7719|01022018|
NOM|987|7721|BUFF|MARJORIE|
88|987|7721|01022018|
99|987|7721|06|08102017
99|987|7721|06|08012018


-> qui correspondent entre eux via la 4eme colonne du premier et la troisieme du second fichier (5 derniers numeros moins le zero)

Si ce awk me ressort l' identifiant Beta de Editions (4eme colonne) qui dispose de plusieurs lignes 99:

awk -F ';|";"|[|]' '/CTF/ {t[x=substr($4, 4)+0]=1; t1[x]=$4} /^NOM[|]/ && t[$3] {t3[$3]++} END {for (n in t3)if(t3[n]>1)print t1[n]}' Editions Articles
78607721


Comment puis je ajouter dans mon log le champ nom et prenom (ligne commencant par NOM) ainsi que les lignes en questions ? (dans l'exemple : 99|987|7721|06|08102017
99|987|7721|06|08012018)

soit :

Matricule : <champ "matricule"> - Nom et Prénom : <champ "nom prénom">
copie des lignes 99


Utile
+0
plus moins
hello
avec /^NOM[|]/ il va ignorer les lignes du fichier Articles qui commencent par 99
Donnez votre avis
Utile
+0
plus moins
Coucou

Desolée, je voulais ecrire


awk -F ';|";"|[|]' '/CTF/ {t[x=substr($4, 4)+0]=1; t1[x]=$4} /^99[|]/ && t[$3] {t3[$3]++} END {for (n in t3)if(t3[n]>1)print t1[n]}' Editions Articles
Donnez votre avis
Utile
+0
plus moins
Ceci a l'air de fonctionner.
awk -F ';|";"|[|]' '
/CTF/ {matric[substr($4, 4)+0]=$4}
/^NOM[|]/ {nom[$3]=sprintf("%s %s",$4,$5)}
/^99[|]/ {nb99[$3]++; lig99[$3]=lig99[$3] $0 ORS}
END { for (n in nb99) if(nb99[n]>1 && matric[n])
printf("Matricule : %s - Nom et Prénom : %s\n%s",matric[n],nom[n],lig40[n])
}
' Editions Articles


Merci
[Resolu]
Coin-c- 15 nov. 2017 à 09:36
Edit : %s\n%s",matric[n],nom[n],lig99[n])
Répondre
Donnez votre avis

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !