命名って難しい

変数、関数、クラスなどなど実装より命名に毎回悩むタイプの人間による技術についてのメモ。

Powershellで複数のCSVファイルを特定の列で1つのファイルにマージ

概要

以下2つのCSVを共通の列名"HeaderA"でまとめたCSVにしたい!

A.csv

HeaderA,HeaderB
ValueA,ValueB

B.csv

HeaderA,HeaderC
ValueA,ValueC

以下Powershellスクリプトで実現。

get-childItem "*.csv" | foreach {
    Import-Csv -Path $_ | Select HeaderA | Export-Csv -Append -NoTypeInformation -Path AB.csv
}

備考/感想

  • Selectに存在しないヘッダーを選んでも大丈夫(無いものは空文字になる)
  • 結果ファイルの全部のデータがダブルクォーテーションで囲まれて出力される。注意。
  • もちろんヘッダー指定は複数でもOK("Select HeaderA, HeaderB"という感じ)