Come combinare file CSV in PowerShell
-
Il formato
CSV
-
Filtra i file
.csv
in PowerShell -
Recupera ciascun oggetto file
.csv
in PowerShell - Unisci il contenuto dei file CSV in PowerShell
- Scrivi il contenuto unito in un file di testo in PowerShell

Potrebbe esserci la necessità di unire diversi file CSV e scrivere i dati in un file di testo in PowerShell. I cmdlet Import-Csv
e Export-Csv
possono essere utilizzati per eseguire questa operazione.
Il formato CSV
Esistono vari tipi di formati di file disponibili per scopi diversi. Il CSV
utilizza una struttura semplice per memorizzare i dati.
Può essere utilizzato per scambiare dati tra diversi programmi. Come suggerisce il suo nome CSV
(valori separati da virgola), i dati sono separati da una virgola.
Le informazioni memorizzate in un file CSV
appaiono simili al seguente.
UserName,Identifier,First Name,Last Name
jak12,1001,Harry,Smith
Rock90,1002,Jeremy,Hamilton
Rick23,1003,Rakesh,Donas
User01,1004,Lokie,Ferguson
Il delimitatore può essere uno spazio, punto e virgola o qualsiasi altro carattere.
Creiamo due file csv
che uniremo utilizzando PowerShell.
Contenuto di username.csv
:
Contenuto di username2.csv
:
Filtra i file .csv
in PowerShell
Si consiglia di utilizzare il cmdlet Get-ChildItem
per recuperare tutti i tipi di file .csv
nella posizione specificata. Il parametro -Filter
può essere passato per filtrare i file con estensione .csv
.
Il percorso della cartella per i file .csv
potrebbe essere diverso nel tuo caso.
$csvFilePath = "D:\csvfiles"
$csvFileList = Get-ChildItem $csvFilePath -Filter *.csv
Controlliamo il contenuto disponibile in $csvFileList
.
$csvFileList
Output:
Recupera ciascun oggetto file .csv
in PowerShell
Recuperiamo ciascun oggetto file con il suo nome completo. Il cmdlet Select-Object
può essere utilizzato per recuperare ogni oggetto con le sue proprietà espanse.
Stiamo inviando l’output del passo precedente al comando Select-Object
.
$csfFilesToImport = $csvFileList | Select-Object -ExpandProperty FullName
Quando visualizzi la variabile $csfFilesToImport
, si può vedere che entrambi gli oggetti file CSV
sono disponibili con il nome completo.
$csfFilesToImport
Output:
Unisci il contenuto dei file CSV in PowerShell
Dal momento che abbiamo ottenuto tutti i file CSV
, importiamo il contenuto di ciascun file. Questo unirà facilmente il contenuto con una riga di intestazione comune.
Possiamo usare Import-CSV
per costruire oggetti simili a tabelle dai contenuti dei file CSV
inviati.
$importedCsvFiles = $csfFilesToImport | Import-Csv
$importedCsvFiles
Output:
Le informazioni sono state unite dai due file CSV
forniti.
Scrivi il contenuto unito in un file di testo in PowerShell
Possiamo trasformare gli oggetti sopra in stringhe CSV
e salvarle in un file di testo. Il cmdlet Export-Csv
è disponibile per l’uso.
Dovremmo utilizzare il parametro Append
per garantire che il contenuto non venga sostituito ma aggiunto.
$importedCsvFiles | Export-Csv D:\merged.txt -NoTypeInformation -Append
Output:
Questo dovrebbe creare un nuovo file di testo chiamato merged.txt
. Il contenuto di quel file sarebbe unito dai sopra citati file CSV
.
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.