IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

Lire à fichier CSV et effacer des lignes


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2002
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 88
    Par défaut Lire à fichier CSV et effacer des lignes
    Bonjour,

    Je me bats depuis 2 jours avec script Powershell, qui lit en entrée 2 fichiers CSV:

    $AD_computers=Import-Csv "hostAD.csv"
    $filetoalalyse=Import-Csv "hostEPO.csv"

    hostAD.csv
    ==> contient le hostname de la machine, suivie de la dernier date de login
    "Name","Stamp"
    "Host1","28/01/2013 05:33:01"
    "Host2","28/01/2013 05:33:01"
    "Host3","28/01/2013 05:33:01"
    "Host4","28/01/2013 05:33:01"

    hostEPO.csv
    ==> contient aussi le hostname, mais avec des infos en plus

    "Name","info1","info2","info3"
    "Host1","ffff","ddd,"dddd"
    "Host4","hhhhh","jjjj","lllll"


    Je precise que mes 2 fichiers CSV contiennent 40 000 entrées.

    Mon but serait de comparer ces fichiers, afin d'obtenir en sortie des fichiers:
    - Hostname que l'on retrouve dans hostAD.csv et dans hostEPO.csv ==> dans ce cas, mon fichier de sortie devra contenir la ligne correspondante de hostEPO.csv

    - Hostname j'ai dans le CSV hostAD.csv mais pas dans hostEPO.csv
    dans ce cas, mon deuxieme fichier de sortie, devra juste contenir l'information de ligne hostAD.csv

    -Hostname present dans hostEPO.csv mais pas dans hostAD.csv
    danc ce as, mon troisieme fichier devra contenir la ligne correspondante de hostEPO.csv

    Mon soucis est que 'jarrive bien accéder aux informations de mes CSV.
    Mais par soucis d'optimisation, puisque j'ai 2 fois 40 000 entrée à traiter, j'aimerai pouvoir supprimer un élément de mes tableaux

    $AD_computers et $filetoalalyse

    Pour se faire, j'utilise

    $AD_computrers.remove("Host1") par exemple, mais cela ne fonctionne pas!
    pourtant sur le site
    http://technet.microsoft.com/en-us/l.../ee692802.aspx
    ils utilisent cette fonctione pour supprimer un alement d'un tableau.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    $detectheader=1
    foreach ($adc in $AD_computers){
    $booladc=1
    $adc.name=$adc.name.ToUpper()
        foreach ($fta in $filetoalalyse){
                $fta.name= $fta.name.ToUpper()
    
            if($fta.name.contains($adc.name) -and ($adc.name -ne "")){
               $booladc=1
               $fta.name + "," +"$fta.info1+","+fta.info2+","+$fta.info3 >> $AD_IN_EPO >> $AD_IN_EPO
               break
            } else {
               $booladc=2
            }
        }
        if ($booladc -eq 2){
            $adc.name >> $AD_NOTIN_EPO
        }
    }
    J'aimeria optimiser ce code en supprimant les elements deja traité, afin de diminuer les recherche dans mes tableaux.

    Mais je ne trouve rien sur le ent pour m'aider :-/

    Vous avez une solution???

    Merci d'avance!

  2. #2
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Billets dans le blog
    1
    Par défaut
    Salut,
    Citation Envoyé par danje Voir le message
    Vous avez une solution???
    Peut-être avec ceci ?

    Pivot-Object :
    http://poshcode.org/3434

    Join-Object :
    http://blogs.msdn.com/b/powershell/a...in-object.aspx

Discussions similaires

  1. comment parser un fichier csv qui contient des ligne en json
    Par khadi8 dans le forum Général Python
    Réponses: 4
    Dernier message: 07/02/2014, 21h07
  2. [MySQL] php et fichier csv fusionner/grouper des lignes
    Par venus02 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 21/03/2011, 15h28
  3. Effacer des lignes dans un fichier ?
    Par Instanton dans le forum Général Python
    Réponses: 5
    Dernier message: 31/12/2007, 13h22
  4. [Debutant]Effacer des lignes dans un fichier
    Par smutmutant2003 dans le forum Linux
    Réponses: 13
    Dernier message: 10/10/2007, 21h49
  5. lire fichier csv et en extraire des infos
    Par isaglada dans le forum VBScript
    Réponses: 2
    Dernier message: 12/02/2007, 13h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo