我正在尝试读取一组以|
管道分隔的文本文件,并获取每个文件的特定列中唯一值的数量,以及文件中的行数。我尝试使用Import-CSV
,但它需要几个小时并占用大量内存。文件范围从 20MB 到 500MB,10-15 个文件。
使用流阅读器会更快吗?我将如何计算唯一值?
Get-ChildItem .\*filtered.txt -Name |
ForEach-Object {
if($dayofweek -eq 1) {
$importFile = Import-Csv $_ -Delimiter '|'
} else {
$importFile = Import-Csv $_ -Delimiter '|' -Header @("a", "Order-ID", "c", "d", "e", "f", "g", "h")
}
$numRows = $importFile | Measure-Object | Select-Object -expand count
$numUniqueOrderID = $importFile | Select Order-ID -Unique
echo "Filename: $_ `t Rows: $numRows `t"
echo "Unique Order-IDs"
$numUniqueOrderID
echo `n
}