2016-07-21 5 views
1

У меня есть два CSV-файла, которые не имеют уникальных идентификаторов. Количество строк обоих файлов равно всегда одинаковое. Я хочу объединить их как есть (второй CSV в качестве дополнительных столбцов в 1-й CSV).Объединить два CSV-файла в один

Содержание file1.csv:

Server,Info 
server1,item1 
server1,item2 
server1,item3 
server2,item1 
server2,item2 
server2,item3 
server3,item1 
server3,item2 
server3,item3 

Содержание file2.csv:

Items,ColumnA,ColumnB,ColumnC 
item#1:,aa,jj,ss 
item#2:,bb,kk,tt 
item#3:,cc,ll,uu 
item#1:,dd,mm,vv 
item#2:,ee,nn,ww 
item#3:,ff,oo,xx 
item#1:,gg,pp,yy 
item#2:,hh,qq,zz 
item#3:,ii,rr,ab 

Ожидая выход CSV файла:

Server,Info,Items,ColumnA,ColumnB,ColumnC 
server1,item1,item#1:,aa,jj,ss 
server1,item2,item#2:,bb,kk,tt 
server1,item3,item#3:,cc,ll,uu 
server2,item1,item#1:,dd,mm,vv 
server2,item2,item#2:,ee,nn,ww 
server2,item3,item#3:,ff,oo,xx 
server3,item1,item#1:,gg,pp,yy 
server3,item2,item#2:,hh,qq,zz 
server3,item3,item#3:,ii,rr,ab 

У меня есть поиск интенсивно в сети, но не нашел никакого решения ... Было бы очень полезно, если бы кто-то мог дать мне несколько ответов здесь ...

ответ

0

Командлет Get-Content можно использовать для чтения файлов CSV, итерации над ним, используя for-loop и используя строку формата, чтобы объединить их. И, наконец, записать новый файл обратно, используя команду: Out-File

$file1 = Get-Content 'Path_to_file1.csv' 
$file2 = Get-Content 'Path_to_file2.csv' 

$content = for ($i = 0; $i -lt $file1.Length; $i++) 
{ 
    '{0},{1}' -f $file1[$i].Trim(), $file2[$i].Trim() 
} 

$content | out-file 'Path_to_file3.csv' 
+1

решение Martin является удивительным вы можете добавить эту строку ниже, чтобы сделать Csv читаемый 'Import-CSV -path«Path_to_file3.csv»| export-csv -path "mergednew.csv" -Delimiter "," -notypeinformation' – DisplayName

+0

@Martin, большое вам спасибо за решение, добавив строку Owl при условии, что она отлично работает :) – Edwin

+0

@ Owl, большое вам спасибо за дополнительная линия, чтобы решение Мартина работало отлично :) – Edwin

Смежные вопросы