求めない で 生きていく

なんとなく書いてみてるブログ

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でやったけど

普通はもっとシンプルにできるわな。