Comment combiner des fichiers CSV dans PowerShell

  1. Le format CSV
  2. Filtrer les fichiers .csv dans PowerShell
  3. Récupérer chaque object de fichier .csv en PowerShell
  4. Fusionner le contenu des fichiers CSV en PowerShell
  5. Écrire le contenu fusionné dans un fichier texte en PowerShell
Comment combiner des fichiers CSV dans 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.

Fichiers CSV

Contenu de username.csv :

fichier CSV de nom d’utilisateur

Contenu de username2.csv :

fichier CSV username2

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 :

Filtrer les fichiers CSV dans PowerShell

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 :

Récupérer chaque objet de fichier CSV dans PowerShell

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 :

Fusionner le contenu des fichiers CSV dans PowerShell

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.

Écrivez le contenu fusionné dans un fichier texte en PowerShell

Vous aimez nos tutoriels ? Abonnez-vous à DelftStack sur YouTube pour nous aider à créer davantage de tutoriels vidéo de haute qualité. Abonnez-vous
Migel Hewage Nimesha avatar Migel Hewage Nimesha avatar

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.

Article connexe - PowerShell CSV