Meilleur auteur de réponses
Supprimer sauts de ligne / Remplacer espaces par virgule

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.
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 :
Voir aussi cet article sur technet.WSUSSearchByTargetGroups $Choice | Select-Object -property InstalledCount,InstalledPendingRebootCount,DownloadedCount,NotInstalledCount,FailedCount,UnknownCount | Export-csv updates.csv
Beatus, qui prodest, quibus potest.- Proposé comme réponse Marc LognoulModerator vendredi 28 janvier 2011 08:24
- Marqué comme réponse Roxana PANAITMicrosoft employee lundi 7 février 2011 15:04
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. -
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
-
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 :
Voir aussi cet article sur technet.WSUSSearchByTargetGroups $Choice | Select-Object -property InstalledCount,InstalledPendingRebootCount,DownloadedCount,NotInstalledCount,FailedCount,UnknownCount | Export-csv updates.csv
Beatus, qui prodest, quibus potest.- Proposé comme réponse Marc LognoulModerator vendredi 28 janvier 2011 08:24
- Marqué comme réponse Roxana PANAITMicrosoft employee lundi 7 février 2011 15:04