Aide Débutant Unix - Supprimer une ligne..
Résolu
Joker
-
Joker -
Joker -
Bonjour,
Je dois faire un listing des personnes qui ont subit une modification de contrat, d'affectation ou de poste ainsi que les entrées et les départs d'agents.
Je fais tout les jour un fichiers des agents présents dans l'entreprise que je compare à un fichier référence ( celui de la veille)
Je compare de fichier avec un COMM et je demande d'afficher les lignes uniques dans le fichiers 1 et le fichiers 2 sauf que lorsque que j'ai une modification sur l'une des informations d'un agent il apparait deux fois dans mon fichier final alors que j'aimerai avoir que la ligne avec la nouvelle information ( la ligne du fichier 2 celui du jour J)
Exemple :
Matricule;Civilité;Nom ;Prénom;DateEmbauche;DateDepart;Statut;Affectation;Activite;Observation;Direction;Departement
VEDX314;Mademoiselle;KWWWWW;Anne-Christine;07/12/2009;;CDD;Siège;ASSISTANT(E) DE DIRECTION;30 BOULEVARD GALLIENI 92130 ISSY LES MOULINEAUX;17;17 =>ligne unique du fichier ref
VJYL326;Monsieur;BXXXXX;Xavier;02/02/2009;;Titulaire;Siège;CHEF DE MISSION;62 RUE CAMILLE DESMOULINS 92130 ISSY LES MOULINEAUX;4;48 =>ligne du fichier Ref
VJYL326;Monsieur;BXXXXX;Xavier;02/02/2009;;Titulaire;Siège;CHEF DE PROJET MOA;62 RUE CAMILLE DESMOULINS 92130 ISSY LES MOULINEAUX;4;48 => ligne du fichier du jour
La ligne seulement présente dans le fichier Ref : j'en ai besoin car ça veut dire que c'est un agent qui est sortie
Par contre pour les deux suivantes seuleument la deuxieme ligne m'intéresse.
Je me suis dis que je pouvais peut être faire un test sur le matricule en lui disant : "si matricule apparait sur deux ligne ne prendre que la deuxieme ligne"
maintenant comment codé ça en unix !!!
si quelqu'un peut m'aider merci d'avance.
Je dois faire un listing des personnes qui ont subit une modification de contrat, d'affectation ou de poste ainsi que les entrées et les départs d'agents.
Je fais tout les jour un fichiers des agents présents dans l'entreprise que je compare à un fichier référence ( celui de la veille)
Je compare de fichier avec un COMM et je demande d'afficher les lignes uniques dans le fichiers 1 et le fichiers 2 sauf que lorsque que j'ai une modification sur l'une des informations d'un agent il apparait deux fois dans mon fichier final alors que j'aimerai avoir que la ligne avec la nouvelle information ( la ligne du fichier 2 celui du jour J)
Exemple :
Matricule;Civilité;Nom ;Prénom;DateEmbauche;DateDepart;Statut;Affectation;Activite;Observation;Direction;Departement
VEDX314;Mademoiselle;KWWWWW;Anne-Christine;07/12/2009;;CDD;Siège;ASSISTANT(E) DE DIRECTION;30 BOULEVARD GALLIENI 92130 ISSY LES MOULINEAUX;17;17 =>ligne unique du fichier ref
VJYL326;Monsieur;BXXXXX;Xavier;02/02/2009;;Titulaire;Siège;CHEF DE MISSION;62 RUE CAMILLE DESMOULINS 92130 ISSY LES MOULINEAUX;4;48 =>ligne du fichier Ref
VJYL326;Monsieur;BXXXXX;Xavier;02/02/2009;;Titulaire;Siège;CHEF DE PROJET MOA;62 RUE CAMILLE DESMOULINS 92130 ISSY LES MOULINEAUX;4;48 => ligne du fichier du jour
La ligne seulement présente dans le fichier Ref : j'en ai besoin car ça veut dire que c'est un agent qui est sortie
Par contre pour les deux suivantes seuleument la deuxieme ligne m'intéresse.
Je me suis dis que je pouvais peut être faire un test sur le matricule en lui disant : "si matricule apparait sur deux ligne ne prendre que la deuxieme ligne"
maintenant comment codé ça en unix !!!
si quelqu'un peut m'aider merci d'avance.
A voir également:
- Aide Débutant Unix - Supprimer une ligne..
- Supprimer rond bleu whatsapp - Guide
- Supprimer une page word - Guide
- Partager photos en ligne - Guide
- Comment supprimer une application préinstallée sur android - Guide
- Supprimer pub youtube - Accueil - Streaming
8 réponses
hello
si le matricule ($1) du fichier jour est présent en traitant le matricule dans le fichier ref, on ne l'imprime pas
si le matricule ($1) du fichier jour est présent en traitant le matricule dans le fichier ref, on ne l'imprime pas
$ $ cat ref Matricule;Civilité;Nom;Prénom;DateEmbauche;DateDepart;Statut;Affectation;Activite;Observation;Direction;Departement VEDX314;Mademoiselle;KWWWWW;Anne-Christine;07/12/2009;;CDD;Siège;ASSISTANT(E) DE DIRECTION;30 BOULEVARD GALLIENI 92130 ISSY LES MOULINEAUX;17;17 VJYL326;Monsieur;BXXXXX;Xavier;02/02/2009;;Titulaire;Siège;CHEF DE MISSION;62 RUE CAMILLE DESMOULINS 92130 ISSY LES MOULINEAUX;4;48 $ $ cat jour VJYL326;Monsieur;BXXXXX;Xavier;02/02/2009;;Titulaire;Siège;CHEF DE PROJET MOA;62 RUE CAMILLE DESMOULINS 92130 ISSY LES MOULINEAUX;4;48 $ $ cat jour ref | awk -F";" '{if(x[$1]!=$1)print $0;x[$1]=$1}'|sort Matricule;Civilité;Nom;Prénom;DateEmbauche;DateDepart;Statut;Affectation;Activite;Observation;Direction;Departement VEDX314;Mademoiselle;KWWWWW;Anne-Christine;07/12/2009;;CDD;Siège;ASSISTANT(E) DE DIRECTION;30 BOULEVARD GALLIENI 92130 ISSY LES MOULINEAUX;17;17 VJYL326;Monsieur;BXXXXX;Xavier;02/02/2009;;Titulaire;Siège;CHEF DE PROJET MOA;62 RUE CAMILLE DESMOULINS 92130 ISSY LES MOULINEAUX;4;48 $
Merci pour ta rapide réponse.
donc si j'ai compris, il faudrais que je supprime les lignes dans mon fichier référence qui ont un matricule en commun dans le fcihier du jour.
comment dois-je faire pour récupere juste le matricule du fichier du jour pour faire une recherche dans le fichier référence pour supprimer la ligne correspondante ? (relier mon matricule à la variable $1)
comme ça ensuite j'applique la ligne de commande comme ci-dessus :
cat jour ref | awk -F";" '{if(x[$1]!=$1)print $0;x[$1]=$1}'|sort
Merci encore !
donc si j'ai compris, il faudrais que je supprime les lignes dans mon fichier référence qui ont un matricule en commun dans le fcihier du jour.
comment dois-je faire pour récupere juste le matricule du fichier du jour pour faire une recherche dans le fichier référence pour supprimer la ligne correspondante ? (relier mon matricule à la variable $1)
comme ça ensuite j'applique la ligne de commande comme ci-dessus :
cat jour ref | awk -F";" '{if(x[$1]!=$1)print $0;x[$1]=$1}'|sort
Merci encore !
on peut aussi faire:
on stocke chaque ligne dans x indexé avec matricule, le fichier jour venant, cette fois après ref
on stocke chaque ligne dans x indexé avec matricule, le fichier jour venant, cette fois après ref
$ cat ref jour | awk -F";" '{x[$1]=$0} ; END{for( n in x)print x[n]}' Matricule;Civilité;Nom;Prénom;DateEmbauche;DateDepart;Statut;Affectation;Activite;Observation;Direction;Departement VJYL326;Monsieur;BXXXXX;Xavier;02/02/2009;;Titulaire;Siège;CHEF DE PROJET MOA;62 RUE CAMILLE DESMOULINS 92130 ISSY LES MOULINEAUX;4;48 VEDX314;Mademoiselle;KWWWWW;Anne-Christine;07/12/2009;;CDD;Siège;ASSISTANT(E) DE DIRECTION;30 BOULEVARD GALLIENI 92130 ISSY LES MOULINEAUX;17;17 $
Bon j'ai fait différent test et je n'arrive pas à avoir le résultat attendu.
En faite pour pouvoir arrivée à mon résultat il faudrai que je le tri uniquement sur mon fichier final ou j'ai :
Matricule;Civilité;Nom ;Prénom;DateEmbauche;DateDepart;Statut;Affectation;Activite;Observation;Direction;Departement
VJYD502;Mademoiselle;Nxx xxxx;Sylvie;01/10/2008;;Titulaire;Siège;CONSEILLER SUPPORT UTILISATEUR COMPTABLE;30 BOULEVARD GALLIENI 92130 ISSY LES MOULINEAUX;7;63
VJYL326;Monsieur;Byyyyy;Xavier;02/02/2009;;Titulaire;Siège;CHEF DE MISSION;62 RUE CAMILLE DESMOULINS 92130 ISSY LES MOULINEAUX;4;48VJYL326;Monsieur;Byyyyy;Xavier;02/02/2009;;Titulaire;Siège;CHEF DE PROJET MOA;62 RUE CAMILLE DESMOULINS 92130 ISSY LES MOULINEAUX;4;48
VJYP058;Monsieur;Faaaaa;Matteo;01/03/2008;;Titulaire;Siège;EXPERT ORGANISATION;17 AVENUE DE CHOISY 75643 PARIS CEDEX 13;18;128VJYP058;Monsieur;Faaaaa;Matteo;01/03/2008;;CDD;Siège;EXPERT ORGANISATION;17 AVENUE DE CHOISY 75643 PARIS CEDEX 13;18;128
ce que je souhaite c'est enlever les lignes en gras sur ce même fichier car si je fais comme expliqué plus haut
j'enlève aussi des lignes que je dois prendre.
est-ce que quelqu'un c'est comment faire ?
Merci.
En faite pour pouvoir arrivée à mon résultat il faudrai que je le tri uniquement sur mon fichier final ou j'ai :
Matricule;Civilité;Nom ;Prénom;DateEmbauche;DateDepart;Statut;Affectation;Activite;Observation;Direction;Departement
VJYD502;Mademoiselle;Nxx xxxx;Sylvie;01/10/2008;;Titulaire;Siège;CONSEILLER SUPPORT UTILISATEUR COMPTABLE;30 BOULEVARD GALLIENI 92130 ISSY LES MOULINEAUX;7;63
VJYL326;Monsieur;Byyyyy;Xavier;02/02/2009;;Titulaire;Siège;CHEF DE MISSION;62 RUE CAMILLE DESMOULINS 92130 ISSY LES MOULINEAUX;4;48VJYL326;Monsieur;Byyyyy;Xavier;02/02/2009;;Titulaire;Siège;CHEF DE PROJET MOA;62 RUE CAMILLE DESMOULINS 92130 ISSY LES MOULINEAUX;4;48
VJYP058;Monsieur;Faaaaa;Matteo;01/03/2008;;Titulaire;Siège;EXPERT ORGANISATION;17 AVENUE DE CHOISY 75643 PARIS CEDEX 13;18;128VJYP058;Monsieur;Faaaaa;Matteo;01/03/2008;;CDD;Siège;EXPERT ORGANISATION;17 AVENUE DE CHOISY 75643 PARIS CEDEX 13;18;128
ce que je souhaite c'est enlever les lignes en gras sur ce même fichier car si je fais comme expliqué plus haut
j'enlève aussi des lignes que je dois prendre.
est-ce que quelqu'un c'est comment faire ?
Merci.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
ca ?
$ cat ref Matricule;Civilité;Nom;Prénom;DateEmbauche;DateDepart;Statut;Affectation;Activite;Observation;Direction;Departement VJYD502;Mademoiselle;Nxx xxxx;Sylvie;01/10/2008;;Titulaire;Siège;CONSEILLER SUPPORT UTILISATEUR COMPTABLE;30 BOULEVARD GALLIENI 92130 ISSY LES MOULINEAUX;7;63 VJYL326;Monsieur;Byyyyy;Xavier;02/02/2009;;Titulaire;Siège;CHEF DE PROJET MOA;62 RUE CAMILLE DESMOULINS 92130 ISSY LES MOULINEAUX;4;48 VJYP058;Monsieur;Faaaaa;Matteo;01/03/2008;;CDD;Siège;EXPERT ORGANISATION;17 AVENUE DE CHOISY 75643 PARIS CEDEX 13;18;128 $ $ cat jour VJYL326;Monsieur;Byyyyy;Xavier;02/02/2009;;Titulaire;Siège;CHEF DE MISSION;62 RUE CAMILLE DESMOULINS 92130 ISSY LES MOULINEAUX;4;48 VJYP058;Monsieur;Faaaaa;Matteo;01/03/2008;;Titulaire;Siège;EXPERT ORGANISATION;17 AVENUE DE CHOISY 75643 PARIS CEDEX 13;18;128 $ $ cat jour ref | awk -F";" '{x[$1]=$0} ; END{for( n in x)print x[n]}' Matricule;Civilité;Nom;Prénom;DateEmbauche;DateDepart;Statut;Affectation;Activite;Observation;Direction;Departement VJYL326;Monsieur;Byyyyy;Xavier;02/02/2009;;Titulaire;Siège;CHEF DE PROJET MOA;62 RUE CAMILLE DESMOULINS 92130 ISSY LES MOULINEAUX;4;48 VJYD502;Mademoiselle;Nxx xxxx;Sylvie;01/10/2008;;Titulaire;Siège;CONSEILLER SUPPORT UTILISATEUR COMPTABLE;30 BOULEVARD GALLIENI 92130 ISSY LES MOULINEAUX;7;63 VJYP058;Monsieur;Faaaaa;Matteo;01/03/2008;;CDD;Siège;EXPERT ORGANISATION;17 AVENUE DE CHOISY 75643 PARIS CEDEX 13;18;128 $
Yes !!!
ça fonctionne presque seul soucis j'ai mon entête de fcihiers qui se retrouve au milieu du fichier et je vois pas pourquoi ??
VJYL469;Mademoiselle;Lc ccc;Gwendoline;01/09/2006;;Titulaire;Siège;CHARGEE DE COMMUNICATION;34 RUE DE LA FEDERATION 75015 PARIS;8;68
VJYL326;Monsieur;Byyyyy;Xavier;02/02/2009;;Titulaire;Siège;CHEF DE PROJET MOA;62 RUE CAMILLE DESMOULINS 92130 ISSY LES MOULINEAUX;4;48
VJYP058;Monsieur;Faaaaa;Matteo;01/03/2008;;Titulaire;Siège;EXPERT ORGANISATION;17 AVENUE DE CHOISY 75643 PARIS CEDEX 13;18;128
VOTH094;Monsieur;AHhhhh;Moëz;01/09/2009;;Titulaire;Siège;CHEF DE PROJET MOA;30 BOULEVARD GALLIENI 92130 ISSY LES MOULINEAUX;22;22
Matricule;Civilité;Nom ;Prénom;DateEmbauche;DateDepart;Statut;Affectation;Activite;Observation;Direction;Departement
VJYP148;Mademoiselle;Lxxxxx;Audrey;14/04/2009;;Titulaire;Siège;ZREPRI;30 BOULEVARD GALLIENI 92130 ISSY LES MOULINEAUX;7;67
VEDX314;Mademoiselle;Kddddd;Anne-Christine;07/12/2009;;CDD;Siège;ASSISTANT(E) DE DIRECTION;30 BOULEVARD GALLIENI 92130 ISSY LES MOULINEAUX;17;17
Merci encore pour ton aide.
ça fonctionne presque seul soucis j'ai mon entête de fcihiers qui se retrouve au milieu du fichier et je vois pas pourquoi ??
VJYL469;Mademoiselle;Lc ccc;Gwendoline;01/09/2006;;Titulaire;Siège;CHARGEE DE COMMUNICATION;34 RUE DE LA FEDERATION 75015 PARIS;8;68
VJYL326;Monsieur;Byyyyy;Xavier;02/02/2009;;Titulaire;Siège;CHEF DE PROJET MOA;62 RUE CAMILLE DESMOULINS 92130 ISSY LES MOULINEAUX;4;48
VJYP058;Monsieur;Faaaaa;Matteo;01/03/2008;;Titulaire;Siège;EXPERT ORGANISATION;17 AVENUE DE CHOISY 75643 PARIS CEDEX 13;18;128
VOTH094;Monsieur;AHhhhh;Moëz;01/09/2009;;Titulaire;Siège;CHEF DE PROJET MOA;30 BOULEVARD GALLIENI 92130 ISSY LES MOULINEAUX;22;22
Matricule;Civilité;Nom ;Prénom;DateEmbauche;DateDepart;Statut;Affectation;Activite;Observation;Direction;Departement
VJYP148;Mademoiselle;Lxxxxx;Audrey;14/04/2009;;Titulaire;Siège;ZREPRI;30 BOULEVARD GALLIENI 92130 ISSY LES MOULINEAUX;7;67
VEDX314;Mademoiselle;Kddddd;Anne-Christine;07/12/2009;;CDD;Siège;ASSISTANT(E) DE DIRECTION;30 BOULEVARD GALLIENI 92130 ISSY LES MOULINEAUX;17;17
Merci encore pour ton aide.