-1

I want to merge two csv files (first.csv and second.csv)

Why do I have the headers of both files appearing when the column names are identical?

function MergeTwoCsv {
        $oldElementsCsv=Import-Csv .\first.csv 
        $newElements= Import-Csv .\second.csv 
        $merged= $oldElementsCsv + $newElements
        $merged | Select-Object  -Property * -Unique | Export-Csv .\joined.csv  -NoTypeInformation -Encoding UTF8 
        
}MergeTwoCsv

first.csv:

"Type","Documentation","ID","Name"

"TechnologyInteraction","Begin Of JobStream","95e59752-217b-4488-92eb-d015b1e36545","ACGN100Q" "TechnologyInteraction","Transfert UDM (xACGN000)","db31092e-6f12-4d3a-8f0d-ab6a7c718ce2","ACGN-100Q-000T" "TechnologyInteraction","move fichier REF to work","cf11f557-20bb-41b0-ac75-72978f39454c","ACGN-100Q-010T" "TechnologyInteraction","w_read_account","41693ab5-1e72-413f-97af-3cde1ea866ac","ACGN-100Q-020T" "TechnologyInteraction","w_read_referential","1d7db6ff-75a4-4d7f-90a2-dc69981e43ac","ACGN-100Q-030T" "TechnologyInteraction","w_load_CompanyGroup","76328d3b-3e17-4117-b2ff-f0e13af9cb9d","ACGN-100Q-040T" "TechnologyInteraction","w_load_Company","2dd95e6b-3b4f-4aac-ad12-68457257afe0","ACGN-100Q-050T" "TechnologyInteraction","End Of JobStream","a23c7e9c-3ce4-43ae-9196-f54566735089","ACGN100Q" "TechnologyInteraction","","ff0de0e0-1652-4ffc-a00d-129b6466a2fd","" "TechnologyInteraction","START","66d884a2-8515-4ca5-91db-71bc36403060","\ACTO\data\out\PACTO500\f_ref12.prd" "TechnologyInteraction","ADDJOBSTREAM","34fbd0f4-2f0d-4ee2-a00f-a89c2516639e","ACTOTRGAAA" "TechnologyInteraction","END","1b3c7c70-ffcf-40ba-9bde-460f8f0756fd","ACTOTRGAAA" "TechnologyInteraction","START","a486a8cb-0135-4c26-91eb-38f75080cfa4","\prod\FACIMPORT*.xml" "TechnologyInteraction","ADDJOBSTREAM","92b24338-7b11-41a4-8af1-e217daa860ee","ACTOTRGAAB" "TechnologyInteraction","END","6825ea37-e7a9-4aab-9370-a7bfee1d8daf","ACTOTRGAAB" "TechnologyInteraction","START","6945f239-bf73-4d95-8478-6bfc1652bf93","\prod\TREATIESDECLARATIONIMPORT*.xml" "TechnologyInteraction","ADDJOBSTREAM","f267eceb-7024-4140-8b53-bd018e62ca15","ACTOTRGAAC" "TechnologyInteraction","END","cf6fa15c-28aa-41c3-8717-03545cc014a7","ACTOTRGAAC" "TechnologyInteraction","START","12a2eae0-9dcc-40d2-9daf-e4685fee0c75","\prod\ACTO\data\in\PACTO003*desc.xml" "TechnologyInteraction","ADDJOBSTREAM","41e4c9b5-669e-4751-a3cc-3f90bd3fab19","ACTOTRGAAD" "TechnologyInteraction","END","088b1d3a-11f5-4a09-a5d4-3c729630e444","ACTOTRGAAD" "TechnologyInteraction","START","1e58e3b3-a99f-44d1-bc37-807f6ee9597f","ROD\ACTO\data\archives\f_ref12.prd.xml????????_??????" "TechnologyInteraction","NOACTION","25efcf42-144c-43c8-9424-a5ad574c30a7","ACTOTRGAAE" "TechnologyInteraction","END","c9388c37-170a-44d0-baf9-0673144e54cc","ACTOTRGAAE" "TechnologyInteraction","Begin Of JobStream","34026a11-5cd6-4b5e-a02d-ca91f7c39e5d","ACTO200X" "TechnologyInteraction","Lancement du traitement","c6f3d0ad-f203-4122-9d06-5dd73d30ead1","ACTO200X-000M" "TechnologyInteraction","End Of JobStream","6d78701b-06dc-4715-bfeb-42aaa5e12bd0","ACTO200X" "TechnologyInteraction","Begin Of JobStream","01708b56-e1be-4731-af5e-d853d8e09d7a","ACTO202Q" "TechnologyInteraction","Get bu files from udm","a00d1e94-1281-4168-9421-11548df01c07","ACTO202Q-110T" "TechnologyInteraction","Dispatch bu files","fb140154-b18f-4f43-b09e-018d5b1f89cd","ACTO202Q-120T" "TechnologyInteraction","Import WEBXL (219)","5eaa89b2-298d-4b41-85ec-630de6342035","ACTO202Q-130T" "TechnologyInteraction","Import WEBXL (220)","1d6bea7c-ff18-44c4-a43d-901e61408e1f","ACTO202Q-140T" "TechnologyInteraction","Dispatch bu_return_files","7ec3939b-af16-40cc-8f01-5045e02b5369","ACTO202Q-150T" "TechnologyInteraction","Push ADDRESS to UDM","001ee7e6-58b9-4ee2-b06b-c173ccaca845","ACTO202Q-160T" "TechnologyInteraction","Push ORIGINALBU 2 UDM","50b371af-cc95-43df-b8e8-465106ae8316","ACTO202Q-165T" "TechnologyInteraction","UDM ACTO272 to EBX","08e1e1b1-bcf3-4e35-b957-8ca1b1769f2f","ACTO202Q-170T"

second.csv:

ID,"Type","Name","Documentation"

79570056-ab4f-6969-8c58-a5bd5847a832,"TechnologyInteraction","COGN100H","RBT-SRVBDD01"
79570056-ab4f-6969-8c58-a5bd5847a833,"TechnologyInteraction","COGN120D","MV Fichiers Rafale USER"
79570056-ab4f-6969-8c58-a5bd5847a834,"TechnologyInteraction","COGN130D","Move Package COGNOS V11"
79570056-ab4f-6969-8c58-a5bd5847a837,"TechnologyInteraction","COGN300H","REBOOT SRV COGNOS V11"
79570056-ab4f-4979-8c58-a5bd5847a704,"TechnologyInteraction","DCLOT200",""
79570056-ab4f-6969-8c58-a5bd5847a839,"TechnologyInteraction","DWHS211Q","ETL DWH REFE"
79570056-ab4f-6969-8c58-a5bd5847a840,"TechnologyInteraction","DWHS212Q","Dwh Stat"
79570056-ab4f-6969-8c58-a5bd5847a841,"TechnologyInteraction","DWHS213Q","REPORTXL"
id-58f66c4d7ec34b709ad16f51183dcc5d,"TechnologyInteraction","F_REF14 / wf_REF_WEBXL",""
id-b002972f7f3544b3b737e08b4ba7e19c,"TechnologyInteraction","F_REF14 / wf_WEBXL_REF",""
79570056-ab4f-6969-8c58-a5bd5847a843,"TechnologyInteraction","FNET100H","RBT-SRVFNP8PEPRD"
79570056-ab4f-6969-8c58-a5bd5847a844,"TechnologyInteraction","FNET110H","RBT-SRVFNP8CEPRD"
b57a5fff-9dd2-4ce1-9141-04c042f49001,"TechnologyService","ACTO200X-000M","Lancement du traitement"
b57a5fff-9dd2-4ce1-9141-04c042f49004,"TechnologyService","ACTO201Q-080-080T","F_REF14 / wf_REF_WEBXL"
b57a5fff-9dd2-4ce1-9141-04c042f49005,"TechnologyService","ACTO201Q-090-090T","Push bu_*.csv to UDM"
b57a5fff-9dd2-4ce1-9141-04c042f49006,"TechnologyService","ACTO201Q-100-100T","UDM ACTO261"
b57a5fff-9dd2-4ce1-9141-04c042f49007,"TechnologyService","ACTO201Q-110-110T","Get bu files from udm"
b57a5fff-9dd2-4ce1-9141-04c042f49008,"TechnologyService","ACTO201Q-120-120T","Dispatch bu files"
b57a5fff-9dd2-4ce1-9141-04c042f49009,"TechnologyService","ACTO201Q-130-130T","Import WEBXL (219)"

Here is a portion of the merged file joined.csv

ID,"Type","Name","Documentation";;;;;;,"Type","Documentation","ID","Name" 79570056-ab4f-6969-8c58-a5bd5847a710,"TechnologyEvent","ACTOTRGAAA","WAIT TRGFIC-ACTO001";;;;;;,,,, 79570056-ab4f-6969-8c58-a5bd5847a711,"TechnologyEvent","ACTOTRGAAB","WAIT TRGFIC-ACTO001";;;;;;,,,, 79570056-ab4f-6969-8c58-a5bd5847a712,"TechnologyEvent","ACTOTRGAAC","WAIT TRGFIC-ACTO002";;;;;;,,,, 79570056-ab4f-6969-8c58-a5bd5847a713,"TechnologyEvent","ACTOTRGAAD","WAIT TRGFIC-ACTO560";;;;;;,,,, 79570056-ab4f-6969-8c58-a5bd5847a748,"TechnologyEvent","AGSOTRGAAA","WAIT TRGFIC-AGSO001";;;;;;,,,, 79570056-ab4f-6969-8c58-a5bd5847a749,"TechnologyEvent","AGSOTRGAAC","WAIT TRGFIC-AGSO802";;;;;;,,,, 79570056-ab4f-6969-8c58-a5bd5847a750,"TechnologyEvent","AGSOTRGAAD","WAIT TRGFIC-AGSO801";;;;;;,,,, 79570056-ab4f-6969-8c58-a5bd5847a751,"TechnologyEvent","AGSOTRGAAE","WAIT TRGFIC-AGSO001";;;;;;,,,, 79570056-ab4f-6969-8c58-a5bd5847a752,"TechnologyEvent","AGSOTRGAAG","WAIT TRGFIC-AGSO011";;;;;;,,,, 79570056-ab4f-6969-8c58-a5bd5847a753,"TechnologyEvent","AGSOTRGAAH","WAIT TRGFIC-AGSO012";;;;;;,,,, 79570056-ab4f-6969-8c58-a5bd5847a754,"TechnologyEvent","AGSOTRGAAI","WAIT TRGFIC-AGSOTRT";;;;;;,,,, 79570056-ab4f-6969-8c58-a5bd5847a809,"TechnologyEvent","CLAITRGAAA","WAIT TRGFIC-CLAI001;;;;;;,,,, ,"TechnologyInteraction","Begin Of JobStream","bb1ee2c0-4597-4ba7-b200-112aa3cb1163","ACGN100Q" ,"TechnologyInteraction","Transfert UDM (xACGN000)","b5ef0448-deca-4892-a5fd-dc6d94d90868","ACGN-100Q-000T" ,"TechnologyInteraction","move fichier REF to work","f3784430-afd9-4a5c-a824-9ec16652df16","ACGN-100Q-010T" ,"TechnologyInteraction","w_read_account","1137383b-0f38-445f-b3b2-6149131cf490","ACGN-100Q-020T" ,"TechnologyInteraction","w_read_referential","06c30a05-666a-4164-b5f1-7469e18d164b","ACGN-100Q-030T" ,"TechnologyInteraction","w_load_CompanyGroup","94e32258-a3ae-4978-a295-9b41ec9d9490","ACGN-100Q-040T" ,"TechnologyInteraction","w_load_Company","54b4e132-aed7-4052-9771-4d5d633f0afe","ACGN-100Q-050T" ,"TechnologyInteraction","End Of JobStream","511d6e57-264c-41f9-b19f-bd45b5db2ed8","ACGN100Q" ,"TechnologyInteraction","","49692848-be50-4e32-bcbf-0fc17c6a698b","" ,"TechnologyInteraction","START","18732c9e-488e-464d-931a-d0f3b82bbf2c","\ACTO\data\out\PACTO500\f_ref12.prd"

Thanks for help.

  • As a side note: I recommend you to [avoid using the increase assignment operator (+=) to create a collection](https://stackoverflow.com/a/60708579/1701026) as it is exponential expensive. – iRon Jun 15 '21 at 14:50
  • What are we going for in this line? `if ($objMatch -match '^(?!.*-)') {` – Daniel Jun 15 '21 at 15:16
  • @IRon , Here is the return I have with the function Union ID, "Type", "Name", "Documentation";;;;;;, "ID", "Type", "Name", "Documentation but I wanted to have only ID, "Type", "Name", "Documentation". I copy and paste a part of the file ID,"Type","Name","Documentation";;;;;;,"ID","Type","Name","Documentation" – Amakouladji Jun 15 '21 at 15:48
  • The Properties are not the same! [Documentation ID Name Type] [ID,"Type","Name","Documentation";;;;;;] if i check with one script – Amakouladji Jun 15 '21 at 16:25
  • '$objMatch` is an object with properties created by `Import-Csv`. I don't think `-match '^(?!.*-)')` will work here and will always return false. – Daniel Jun 15 '21 at 16:38
  • Please create an [mcve]. I don't think that both functions `CompareTwoCsv` and `MergeTwoCsv` are required to describe your issue "***Why does merging my csv files not work?***". In case there are multiple issues, separate them over multiple StackOverflow questions. Also add a sample of your expected results to the question. – iRon Jun 15 '21 at 16:46

1 Answers1

0

It's worked for me, My csv file was the problem in its head

function MergeTwoCsv {
            $oldElementsCsv=Import-Csv .\first.csv 
            $newElements= Import-Csv .\second.csv 
            $merged= $oldElementsCsv + $newElements
            $merged | Select-Object  -Property * -Unique | Export-Csv .\joined.csv  -NoTypeInformation -Encoding UTF8 
            
    }MergeTwoCsv