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 :

Manipuler un fichier csv volumineux [PowerShell]


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Février 2014
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2014
    Messages : 326
    Par défaut Manipuler un fichier csv volumineux
    Bonjour,


    J'ai un fichier qui m'arrive brut et je dois le modifié manuelllement pour l'exploiter
    Le fichier étant volumineux CSV je l'ouvre en mode Txt et non par excel


    j'aurai besoin de supprimer toute les lignes avant Activity month
    Le nombre de ligne peut etre différent


    Et sur la ligne de l'entete : activity month
    Mettre le commentaire "Description" si la colonne précédente porte le meme nom
    Exemple
    Activity Month;Project;Project;..... en Activity Month;Project;Project Description;.....
    il y a X modification a faire sur l'entete qui contient plus d'une centaines de colonnes.

    Merci d'avance pour votre aide



    la structure ressemble a
    EmployeeTime Sheet Data;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    Last Data Update:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    32/13/2022 14:22:06;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    Display As;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    List of Exceptions;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    No exceptions defined;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;Currency Type;Local Currency;Local Currency;Local Currency
    Activity Month;Project;Project;Client;Region;Employee;Employee;......

  2. #2
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    Voici une première idée pour supprimer les lignes avant le premier Activity Month;

    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $a = Get-Content -Path "data.txt" -Raw
    $a -match "(?ms)(^Activity Month;.*)"
    $extract = $Matches[1]
    Set-Content -Path "data.txt" -Value $extract

  3. #3
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    Voici avec les deux besoins

    Code powershell : 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
    21
    $a = Get-Content -Path "data.txt" -Raw
    $null = $a -match "(?ms)(^Activity Month;.*)"
    $extract = $Matches[1]
     
    $lines = $extract.Replace("`r", "").Split("`n") | Where-Object {![string]::IsNullOrEmpty($_)}
     
    For ($h = 0; $h -le $lines.Count -1; $h++)
    {
        $items = $lines[$h].Split(";")
        For ($i = 0; $i -le $items.Count - 2; $i++)
        {
            if ($items[$i] -eq $items[$i + 1])
            {
                $items[$i + 1] = $items[$i + 1] + " Description"
            }
        }
        $lines[$h] = $items -join ";"
    }
    $str = $lines -join "`r`n"
     
    Set-Content -Path "data.txt" -Value $str

  4. #4
    Membre éclairé
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Février 2014
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2014
    Messages : 326
    Par défaut
    C'est le top merci
    Sauf que tu modifies toute les lignes hors je ne veux modifie que la ligne (entete) commencant par activty month et non toutes les lignes du fichier

    en revanche pourrais le commenter que je puisse en tirer un enseignement pour le futur ?

  5. #5
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    hors je ne veux modifie que la ligne (entete) commencant par activty month et non toutes les lignes du fichier
    Donc seulement 1 ligne si nécessaire ?

  6. #6
    Membre éclairé
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Février 2014
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2014
    Messages : 326
    Par défaut
    oui mais je garde précieusement les 2 version car c'est un bon moyen d'apprendre

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [OpenOffice][Tableur] Comment lire un fichier .csv volumineux
    Par Derfh dans le forum OpenOffice & LibreOffice
    Réponses: 6
    Dernier message: 16/04/2015, 11h11
  2. Manipulation de fichier csv.
    Par FluffyQueeny dans le forum Langage
    Réponses: 5
    Dernier message: 30/05/2014, 08h19
  3. manipulation de fichier csv et txt en même temps, heelpe
    Par leila32 dans le forum Général Python
    Réponses: 3
    Dernier message: 10/04/2013, 14h04
  4. Manipulation de fichier csv
    Par midgard30 dans le forum Général VBA
    Réponses: 2
    Dernier message: 12/08/2008, 06h35
  5. [CSV] Comment manipuler un fichier csv ?
    Par gorgoroth dans le forum Langage
    Réponses: 5
    Dernier message: 20/03/2008, 22h35

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