Comment combiner des fichiers CSV dans PowerShell
-
Le format
CSV
-
Filtrer les fichiers
.csv
dans PowerShell -
Récupérer chaque object de fichier
.csv
en PowerShell - Fusionner le contenu des fichiers CSV en PowerShell
- Écrire le contenu fusionné dans un fichier texte en PowerShell

Il peut y avoir un besoin de fusionner plusieurs fichiers CSV et d’écrire les données dans un fichier texte en PowerShell. Les cmdlets Import-Csv
et Export-Csv
peuvent être utilisées pour effectuer cette opération.
Le format CSV
Il existe divers types de formats de fichiers disponibles pour différents usages. Le CSV
utilise une structure simple pour stocker des données.
Il peut être utilisé pour échanger des données entre différents programmes. Comme son nom CSV
(valeurs séparées par des virgules) l’indique, les données sont séparées par des virgules.
Les informations stockées dans un fichier CSV
ressemblent à ceci :
UserName,Identifier,First Name,Last Name
jak12,1001,Harry,Smith
Rock90,1002,Jeremy,Hamilton
Rick23,1003,Rakesh,Donas
User01,1004,Lokie,Ferguson
Le délimiteur peut être un espace, un point-virgule ou tout autre caractère.
Créons deux fichiers csv
que nous allons fusionner en utilisant PowerShell.
Contenu de username.csv
:
Contenu de username2.csv
:
Filtrer les fichiers .csv
dans PowerShell
Il est recommandé d’utiliser la cmdlet Get-ChildItem
pour récupérer tous les types de fichiers .csv
dans l’emplacement spécifié. Le paramètre -Filter
peut être passé pour filtrer les fichiers avec l’extension .csv
.
Le chemin du dossier vers les fichiers .csv
peut être différent dans votre cas.
$csvFilePath = "D:\csvfiles"
$csvFileList = Get-ChildItem $csvFilePath -Filter *.csv
Vérifions le contenu disponible dans la variable $csvFileList
.
$csvFileList
Sortie :
Récupérer chaque object de fichier .csv
en PowerShell
Récupérons chaque objet de fichier avec son nom complet. La cmdlet Select-Object
peut être utilisée pour récupérer chaque objet avec ses propriétés étendues.
Nous envoyons la sortie de l’étape précédente à la commande Select-Object
.
$csfFilesToImport = $csvFileList | Select-Object -ExpandProperty FullName
Lorsque vous affichez la variable $csfFilesToImport
, il peut être vu que les deux objets de fichier CSV
sont disponibles avec le nom complet.
$csfFilesToImport
Sortie :
Fusionner le contenu des fichiers CSV en PowerShell
Puisque nous avons obtenu tous les fichiers CSV
, importons le contenu de chaque fichier. Cela fusionnerait facilement le contenu avec une ligne d’en-tête commune.
Nous pouvons utiliser Import-CSV
pour construire des objets en forme de tableau à partir des contenus de fichiers CSV
envoyés.
$importedCsvFiles = $csfFilesToImport | Import-Csv
$importedCsvFiles
Sortie :
Les informations ont été fusionnées à partir des deux fichiers CSV
fournis.
Écrire le contenu fusionné dans un fichier texte en PowerShell
Nous pouvons transformer les objets ci-dessus en chaînes CSV
et les enregistrer dans un fichier texte. La cmdlet Export-Csv
est disponible à utiliser.
Nous devrions utiliser le paramètre Append
pour s’assurer que le contenu n’est pas remplacé et est ajouté.
$importedCsvFiles | Export-Csv D:\merged.txt -NoTypeInformation -Append
Sortie :
Cela devrait créer un nouveau fichier texte appelé merged.txt
. Le contenu de ce fichier serait fusionné à partir des deux fichiers CSV
ci-dessus.
Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.