![]() |
|
|
|
|
|||||||
| UNIX for Advanced & Expert Users Advanced UNIX and Linux questions go here. Expert-to-Expert. |
|
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Problem joining 2 files | rochitsharma | UNIX for Advanced & Expert Users | 4 | 04-03-2008 03:12 AM |
| Help with joining two files | rjlohman | Shell Programming and Scripting | 3 | 09-27-2006 08:55 AM |
| Joining lines from two files - please help | chandra004 | Shell Programming and Scripting | 25 | 07-26-2006 11:39 PM |
| joining files | Manu | UNIX for Dummies Questions & Answers | 2 | 04-25-2005 09:24 AM |
| joining 2 files | webtekie | UNIX for Dummies Questions & Answers | 1 | 10-21-2003 07:51 AM |
|
|
Submit Tools | LinkBack | Thread Tools | Display Modes |
|
|||
|
Joining 2 CSV files together
I need a little help as I am a complete novice at scripting in unix. However, i am posed with an issue... i have two csv files in the following format@
FILE1.CSV: HEADER HEADER Header , , HEADER 001X ,,200 002X ,,300 003X ,,300 004X ,,300 FILE2.CSV: HEADER HEADER Header , , HEADER 001X ,,300 003X ,,500 005X ,,600 006X ,,100 I need the above to files to merged into on final file as below: FINAL_MERGED.CSV: HEADER HEADER Header , , HEADER 001X ,,300 002X ,,300 003X ,,500 004X ,,300 005X ,,600 006X ,,100 I have tried using the join command but that only lets me to join the two files but as you can see from the above i need the ability to be able to overwrite values from file 1 whith those in file 2. The logic behind it is that the first csv (FILE1.CSV) file is produced but may have incorrect figures associated with it. Once the information is readily available the second csv (FILE2.CSV) is produced with the correct figures and any missing codes. Once this has been done file 1 and file 2 need to be merged to have the correct figures from file 2 and also to include any missing codes that are on file 2 but not file 1. I need to do this in Unix, my initial thoughts were to use the join command but not sure if this is possible but may be some use of lookup could be done... again i am a programming and unix newbie so would appreciate any assistance. |
| Forum Sponsor | ||
|
|
|
|||
|
Hi,
#!/bin/ksh cat file1.csv file2.csv >> temp grep X temp | cut -d"," -f1 | sort -u > final2 while read line do line1=`grep $line file2.csv` if [ $? -eq 0 ] then echo $line1 >> final_out else line2=`grep $line file1.csv` echo $line2 >> final_out fi done < final2 Output: 001X ,,300 002X ,,300 003X ,,500 004X ,,300 005X ,,600 006X ,,100 Penchal |
|
|||
|
Hi,
You can add this line as 2nd line of the above script for complete output echo "HEADER \nHEADER \nheader \n, ,HEADER " >> final_out Output: HEADER HEADER header , ,HEADER 001X ,,300 002X ,,300 003X ,,500 004X ,,300 005X ,,600 006X ,,100 |
|
|||
|
Double post questions is not allowed, please read the:
rules Continue here: Merging 2 .CSV files in Unix Thread closed. |
|||
| Google UNIX.COM |
| Thread Tools | |
| Display Modes | |
|
|