如何在 PowerShell 中合併 CSV 文件
-
CSV
格式 -
在 PowerShell 中過濾
.csv
檔案 -
在 PowerShell 中獲取每個
.csv
檔案對象 - 在 PowerShell 中合併 CSV 檔案的內容
- 在 PowerShell 中將合併內容寫入文本檔案

在 PowerShell 中,可以需要合併多個 CSV 檔案並將數據寫入文本檔案。可以使用 Import-Csv
和 Export-Csv
Cmdlet 來執行此操作。
CSV
格式
有各種不同目的的檔案格式可用。CSV
使用簡單的結構來存儲數據。
它可以用來在不同的程序之間交換數據。正如其名 CSV
(逗號分隔值)所暗示的,數據是用逗號分隔的。
存儲在 CSV
檔案中的信息如下所示。
UserName,Identifier,First Name,Last Name
jak12,1001,Harry,Smith
Rock90,1002,Jeremy,Hamilton
Rick23,1003,Rakesh,Donas
User01,1004,Lokie,Ferguson
分隔符可以是空格、分號或任何其他字符。
讓我們創建兩個 csv
檔案,我們將通過 PowerShell 將其合併。
username.csv
內容:
username2.csv
內容:
在 PowerShell 中過濾 .csv
檔案
建議使用 Get-ChildItem
Cmdlet 以獲取指定位置的所有 .csv
檔案類型。可以傳遞 -Filter
參數以過濾具有 .csv
擴展名的檔案。
.csv
檔案的文件夾路徑在您的情況下可能會不同。
$csvFilePath = "D:\csvfiles"
$csvFileList = Get-ChildItem $csvFilePath -Filter *.csv
讓我們檢查 $csvFileList
中可用的內容。
$csvFileList
輸出:
在 PowerShell 中獲取每個 .csv
檔案對象
讓我們檢索每個檔案對象及其完整名稱。可以使用 Select-Object
Cmdlet 來檢索每個對象及其擴展屬性。
我們將前一步的輸出傳遞給 Select-Object
命令。
$csfFilesToImport = $csvFileList | Select-Object -ExpandProperty FullName
當您顯示 $csfFilesToImport
變量時,可以看到兩個 CSV
檔案對象都具有完整名稱。
$csfFilesToImport
輸出:
在 PowerShell 中合併 CSV 檔案的內容
由於我們獲取了所有的 CSV
檔案,讓我們導入每個檔案的內容。這將輕鬆地將內容合併到具有共同標題行的格式中。
我們可以使用 Import-CSV
來從傳遞的 CSV
檔案內容構建類似表格的對象。
$importedCsvFiles = $csfFilesToImport | Import-Csv
$importedCsvFiles
輸出:
信息已從提供的兩個 CSV
檔案中合併。
在 PowerShell 中將合併內容寫入文本檔案
我們可以將上述對象轉換為 CSV
字符串並將其保存到文本檔案中。可以使用 Export-Csv
Cmdlet。
我們應該使用 Append
參數以確保內容不被替換並附加。
$importedCsvFiles | Export-Csv D:\merged.txt -NoTypeInformation -Append
輸出:
這應該創建一個名為 merged.txt
的新文本檔案。該檔案的內容將來自上述兩個 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.