Powershellでヘッダーなしのcsvを結合しまくりたいとき
同じ形式のcsvを沢山出力されてて
それを1つのファイルにまとめたいとき。
やり方はいろいろあるんだろうけど、直感的なの?は
----------------------------
$TargetDirectory = "c:\directory"
$ExportFilename = "c:\Integratedfile.csv"
Get-ChildItem $TargetDirectory | foreach {
$csv = (Join-path $TargetDirectory $_.Name)
$csvs = Import-CSV $csv
$csvs | Export-CSV $ExportFilename -Append -NoTypeInformation
}
---------------------------
でも、これだとヘッダーがあること前提。
ヘッダーなしのcsvを単に結合していきたいというときは
Import-CSVの代わりにGet-Contentで取得して
Export-CSVの代わりにOut-Fileで出力する。
(csvってかただのテキストとして扱う)
---------------------------
$TargetDirectory = "c:\directory"
$ExportFilename = "c:\Integratedfile.csv"
$files = Get-ChildItem $TargetDirectory
$files | foreach {
$csvs = Get-Content -path (Join-path $TargetDirectory $_.name)
$csvs | Out-File -FilePath $ExportFilename
}
---------------------------
ってかRで変換とかしてたらエンコードの問題が発生したからpowershellでやったけど
普通はもっとシンプルにできるわな。