Extractions de données entre 2 fichiers
Coin-C44
-
Coin-c -
Coin-c -
Bonsoir,
- J'ai un fichier "Editions"
- et mon fichier "Articles"
-> 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:
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 :
- 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
A voir également:
- Extractions de données entre 2 fichiers
- Supercopier 2 - Télécharger - Gestion de fichiers
- Supprimer les données de navigation - Guide
- Explorateur de fichiers - Guide
- Renommer des fichiers en masse - Guide
- Fichiers epub - Guide
3 réponses
Coucou
Desolée, je voulais ecrire
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
Ceci a l'air de fonctionner.
Merci
[Resolu]
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]