none
Supprimer sauts de ligne / Remplacer espaces par virgule RRS feed

  • Question

  • Bonjour,

     

    Je n'arrive pas à mettre en forme un fichier comme je le souhaite. La forme actuelle est la suivante :

     

    18/01/2011
    
             4          0          0         70          0         23
    19/01/2011
    
             10          0          0         67          0         20
    
    

     

    J'aimerais supprimer les retours à la ligne ainsi que les nombreux espaces afin d'avoir au final :

     

     

    18/01/2011,4,0,0,70,0,23
    18/01/2011,10,0,0,67,0,20
    

     

    J'ai réussi à changer les espaces en virgules (meme si c'est pas top, c'est toujours exploitable dans Excel qui supprime les virgules lors de l'import d'un fichier) :

     

    18/01/2011
    
    ,,,,,,,,,,,,,,,,,,4,,,,,,,,,,,,,,,,,,,0,,,,,,,,,,,,,,,,,,,0,,,,,,,,,,,,,,,,,,70,,,,,,,,,,,,,,,,,,,0,,,,,,,,,,,,,,,,,,23
    ,,,,,,,,,,,,,,,,,,0,,,,,,,,,,,,,,,,,,,0,,,,,,,,,,,,,,,,,,,0,,,,,,,,,,,,,,,,,,12,,,,,,,,,,,,,,,,,,,0,,,,,,,,,,,,,,,,,,,0
    ,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,0,,,,,,,,,,,,,,,,,,,0,,,,,,,,,,,,,,,,,,52,,,,,,,,,,,,,,,,,,,0,,,,,,,,,,,,,,,,,,,3
    ,,,,,,,,,,,,,,,,,,0,,,,,,,,,,,,,,,,,,,0,,,,,,,,,,,,,,,,,,,0,,,,,,,,,,,,,,,,,,,6,,,,,,,,,,,,,,,,,,,0,,,,,,,,,,,,,,,,,,,0
    ,,,,,,,,,,,,,,,,,,3,,,,,,,,,,,,,,,,,,,0,,,,,,,,,,,,,,,,,,,0,,,,,,,,,,,,,,,,,,,0,,,,,,,,,,,,,,,,,,,0,,,,,,,,,,,,,,,,,,,0
    ,,,,,,,,,,,,,,,,,,0,,,,,,,,,,,,,,,,,,,0,,,,,,,,,,,,,,,,,,,0,,,,,,,,,,,,,,,,,,,0,,,,,,,,,,,,,,,,,,,0,,,,,,,,,,,,,,,,,,,0
    ,,,,,,,,,,,,,,,,,,0,,,,,,,,,,,,,,,,,,,0,,,,,,,,,,,,,,,,,,,0,,,,,,,,,,,,,,,,,,,0,,,,,,,,,,,,,,,,,,,0,,,,,,,,,,,,,,,,,,20
    ,,,,,,,,,,,,,,,,,,0,,,,,,,,,,,,,,,,,,,0,,,,,,,,,,,,,,,,,,,0,,,,,,,,,,,,,,,,,,,0,,,,,,,,,,,,,,,,,,,0,,,,,,,,,,,,,,,,,,,0
    
    

     

    mais je n'ai pas réussi à supprimer les deux sauts de ligne.

     

    Merci.

    mardi 18 janvier 2011 16:04

Réponses

  • Je pense que tu devrais faire un Export-CSV du résultat de ta fonction et pas utiliser les cmdlets de formatage pour créer un csv, car tu crées un fichier texte, dans un format que tu ne contrôle pas (pas certains que ce soit des retour chariot), pour ensuite manipuler de nouveau des objets...

    Essaie qq chose comme ceci :

    WSUSSearchByTargetGroups $Choice | 
     Select-Object -property InstalledCount,InstalledPendingRebootCount,DownloadedCount,NotInstalledCount,FailedCount,UnknownCount | 
     Export-csv updates.csv 
    
    
    Voir aussi cet article sur technet.
    Beatus, qui prodest, quibus potest.
    lundi 24 janvier 2011 19:03
    Modérateur

Toutes les réponses

  • Bonjour,

    le problème est qu'on ne connait pas le code que tu utilises ni la structure du fichier (export As400 ? Champs de longueur fixe ?).

    Une piste hasardeuse:

    $t=(([regex]"\s{2,}").Replace($S, ";")).split("`n")

    Avec :

     $s=@"
    18/01/2011
         4     0     0     70     0     23
    19/01/2011
         10     0     0     67     0     20
    "@

    Beatus, qui prodest, quibus potest.
    mercredi 19 janvier 2011 20:00
    Modérateur
  • J'ai un morceau de solution avec 

     

    $updatesfile -replace('\s+',",")

     

    mais il me reste deux retours chariots.

     

    Voici le code 

    function WSUSSearchByTargetGroups([string]$update){
      [void][reflection.assembly]::LoadWithPartialName("Microsoft.UpdateServices.Administration")
      $wsus = [Microsoft.UpdateServices.Administration.AdminProxy]::GetUpdateServer()
      $wsus.SearchUpdates($update) | where { ( $_.'Title' -like '*2008 R2*' ) -and ( $_.'Title' -like '*7*') -and -not ( $_.'Title' -like '*Itanium*' ) } |
        ForEach-Object{
    		[DateTime]::UtcNow.ToShortDateString()
    		$kbname = $_.KnowledgebaseArticles
    		$_.GetSummaryPerComputerTargetGroup()
    		}
    		}
    $Choice = Read-Host "Which update to follow (without -KB-)?"
    WSUSSearchByTargetGroups $Choice | Format-table -hideTableHeaders -property InstalledCount,InstalledPendingRebootCount,DownloadedCount,NotInstalledCount,FailedCount,UnknownCount | Out-File updates.csv
    $updatesfile = get-content updates.csv
    $updatesfile = $updatesfile -replace('\s+',",")
    $updatesfile[0..2] >> $("C:\Users\***\Desktop\" + $Choice + ".csv")
    del updates.csv
    

    jeudi 20 janvier 2011 08:21
  • Je pense que tu devrais faire un Export-CSV du résultat de ta fonction et pas utiliser les cmdlets de formatage pour créer un csv, car tu crées un fichier texte, dans un format que tu ne contrôle pas (pas certains que ce soit des retour chariot), pour ensuite manipuler de nouveau des objets...

    Essaie qq chose comme ceci :

    WSUSSearchByTargetGroups $Choice | 
     Select-Object -property InstalledCount,InstalledPendingRebootCount,DownloadedCount,NotInstalledCount,FailedCount,UnknownCount | 
     Export-csv updates.csv 
    
    
    Voir aussi cet article sur technet.
    Beatus, qui prodest, quibus potest.
    lundi 24 janvier 2011 19:03
    Modérateur