объединить 2 CSV-файлов через пакет - PullRequest
0 голосов
/ 12 марта 2019

Я хотел бы объединить 2 разных файла CSV в один файл CSV.

Структура CSV (1):

Column A; Column B; Column C; Column D; Column E; Column F;

Структура CSV (2):

Column A; Column B; Column G;

Это означает, что первые 2 столбца в обоих файлах равны.

Я хочу прикрепить column G от csv (2) до конца csv (1).

Так как у меня есть несколько файлов, которые мне нужно объединить, я хотел бы сделать это, используя командный файл, может быть?

Я нашел скрипт, который должен выполнить трюк в PowerShell, но я получаю ошибку.

$csv1 = Import-CSV -Path y:\test\csv01.csv -delimiter ";"
$csv2 = Import-CSV -Path y:\test\csv99.csv -delimiter ";"
$csv1 | select *,@{n="Column G";e={$this = $_; $csv2 | ?{$_."Column A" -eq $this."Column A" and $_."Column B" -eq $this."Column B"} | select -Expand "Column G"}} | export-csv -Path y:\test\datei_neu.csv -delimiter ";" -NoTypeInformation -Encoding UTF8

Я получаю сообщение об ошибке, что либо команда написана неправильно, либо не может быть найдена.

1 Ответ

0 голосов
/ 12 марта 2019

Вы можете использовать Miller (здесь двоичные файлы для Linux и Win https://github.com/johnkerl/miller/releases/tag/5.4.0).

Начиная с этих 2 файлов

A,B,C
1,3,5
7,6,8

A,D
1,8
7,8

и запускать

mlr --csv cat then unsparsify --fill-with "" 1.txt 2.txt

выиметь

A,B,C,D
1,3,5,
7,6,8,
1,,,8
7,,,8
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...