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 :

Remplacer le . par , dans une/plusieurs colonnes d un csv en powershell [PowerShell]


Sujet :

Scripts/Batch

  1. #1
    Membre habitué
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Février 2014
    Messages
    319
    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 : 319
    Points : 158
    Points
    158
    Par défaut Remplacer le . par , dans une/plusieurs colonnes d un csv en powershell
    Bonjour,


    J'ai un fichier csv qui contient plusieurs colonnes dont 2 : "temps" et "Nb heure" qui contiennent des valeurs numérique

    Je voudrais remplacer les . par , si nécessaire dans ces 2 colonnes.

    Nous trouvons beaucoup d'explications sur le net pour remplacer tous les . par des , mais aucune explication pour cibler une colonne d'un csv.

    merci pour votre aide

  2. #2
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 201
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    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 201
    Points : 5 795
    Points
    5 795
    Par défaut
    Avec un peu d'imagination j'ai fait ceci

    a.csv
    Code csv : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    a;temps;b;Nb heure
    a;10;b;20
    a;10.1;b;20.1
    a;10,2;b;20,2

    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    Import-Csv "a.csv" -Delimiter ";" | Select-Object *, @{label='temps';expression={$_.temps -replace "\.", ","}}, @{label='Nb heure';expression={$_."Nb heure" -replace "\.", ","}} -ExcludeProperty temps, "Nb heure"

    Sortie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    a b temps Nb heure
    - - ----- --------
    a b 10    20      
    a b 10,1  20,1    
    a b 10,2  20,2

  3. #3
    Membre habitué
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Février 2014
    Messages
    319
    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 : 319
    Points : 158
    Points
    158
    Par défaut
    merci

    ca fonctionne parfaitement

  4. #4
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 201
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    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 201
    Points : 5 795
    Points
    5 795
    Par défaut
    Car il possède un espace :
    https://www.ipgirl.com/54981/powersh...un-espace.html
    https://stackoverflow.com/questions/...ntains-a-space

    Tu pourrais mettre les " pour temps mais elles sont facultatives

  5. #5
    Membre habitué
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Février 2014
    Messages
    319
    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 : 319
    Points : 158
    Points
    158
    Par défaut
    J'ai teste en voulant ajouter une modification

    j'ai le champs activity month dont le syntase se fait "2021-05-01 00:00" je veux le le transformer en yyyy-MM pour cela j'ai voulu remplacer "-01 00:00" par "".

    Cela ne fonctionne pas pourquoi je le vois dans la fenetre de visualisation mais il ne mets pas a jour le fichier

    Code PowerShell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Import-Csv $newName3 -Delimiter ";" | Select-Object *, @{Label='Activity Month';Expression ={$_."Activity Month" -replace "-01 00:00", ""}}, @{label='temp';expression={$_.temps -replace "\.", ","}}, @{label='"Nb heure"';expression={$_.
    'Nb heure' -replace "\.", ","}} -ExcludeProperty "Activity Month", temps, "Nb heure"

    IL semble que certaines date son dans le format 01/04/2021 est il possible de remplacer la date en YYYY-mm la fonction replace ("-01 00:00", "" ) ne convient plus.

    les deux format du champs activity Month sont "dd/mm/yyyy hh:mm" ou "yyyy/mm/dd hh:mm".

  6. #6
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 201
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    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 201
    Points : 5 795
    Points
    5 795
    Par défaut
    Re,

    Tu as résolu ton problème de date ? C'est un peu galère si les dates ne sont pas formaté mais cela semble gérable puisqu'elle sont reconnaissable de façon sur.

    Cela ne fonctionne pas pourquoi je le vois dans la fenetre de visualisation mais il ne mets pas a jour le fichier
    Parce qu'il n'y a aucune demande d'enregistrement, voir Export-Csv

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

Discussions similaires

  1. [XL-2016] VBA : remplacer une formule par "" dans une colonne
    Par markym dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 14/03/2019, 10h59
  2. Réponses: 7
    Dernier message: 05/04/2016, 16h15
  3. Remplacer . par , dans une colonne.
    Par kythi dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 26/03/2013, 10h46
  4. Remplacer \ par \\ dans une string?
    Par g0ldenrno dans le forum Langage
    Réponses: 9
    Dernier message: 05/06/2006, 19h22
  5. Trouver ' et remplacer par \' dans une chaîne
    Par micatmidog dans le forum Général Python
    Réponses: 9
    Dernier message: 23/12/2005, 16h09

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