Compare two files and merge columns in a third


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Compare two files and merge columns in a third
# 15  
Old 04-04-2007
Quote:
Originally Posted by vgersh99
probably your community strings and the SNMP versions will be different based on the 'Host'.

You may want to do a 'Get' on the 'sysDescr' and depending on the output use different OIDs for different 'hosts' - just an idea.
It's a good one, but I do not want to add to much complexity for the moment (now the script is very simple and I alredy need a lot of help ...). By the way, the host trick gives me some troubles. I've got some output with mac and port bat at console I see:

Unknown host (.1.3.6.1.2.1.17.4.3.1.1) (Connection timed out)

It seems that some of the parameters are going in the wrong place ... and there is the question of the output, I obtain a unique file and mac and port entries are all mixed so I have more ports with same number of different switches but there is no way to understand which one switch. I can solve this only in two ways, to add the switch ip string in each row something like

switch port mac
1.2.3.4 1 00:00:ecc. ecc.
.....

and having a unique file or having an output of separate files as proposed in my question. But how I can do this with scripting?
# 16  
Old 04-04-2007
Code:
GET () { 
     while read Host
     do
         snmpwalk -Onq $Host $Pass $1 | sed -e s/^$1\.// -e s/\"//g | sort >> "/tmp/${Host}.txt"
     done < "${HostFile}"
   }

you'll have ONE file per host stored under '/tmp' directory.
As far as the parameters going in the 'wrong' place.... you'll have to troubleshoot it yourself: make sure your 'snmpwalk' signature jives with what you're scripting it with - should not be too bad!
# 17  
Old 04-04-2007
About troubleshoothing you are right, you have helped so much so it's better that I do something as well, but I have no files, one per host in /tmp. I suspect that the error is due to this line of code

for OID in Mac Port
do eval "GET \$$OID > /tmp/${Script}\$$OID" ; done

indeed in /tmp I have something like

nameofscript.1.3.6.1.2.1.17.4.3.1.1

one for OID, when I use your

while read Host
do

nameofscript.OID is rewritten for every host in hostfile and so I don't have multiple entries. Correct? Can you be very patient and give me some more advice?
# 18  
Old 04-04-2007
how about this:
Code:
GET () { 
     while read Host
     do
         snmpwalk -Onq $Host $Pass $1 | sed -e s/^$1\.// -e s/\"//g | sort >> "/tmp/${Host}.txt"
     done < "${HostFile}"
   }  

for OID in Mac Port
do eval "GET \$$OID" ; done

I just removed the file redirection from the 'for' loop, but you might need it for your 'JOIN'. WIth the redirection removed you should get ONE file (for both Mac and Port) for ONE host all in ONE file. I'm not sure if that's what you're looking for as a final result.
# 19  
Old 04-04-2007
Tomorrow I will try your last suggestion. A unique file is good, but I have to prepend to every line of output the ip of the swith, if not I know where is the port and the associated mac but I don't know where among many switches. So at first look something is missing in your last lines of code.
# 20  
Old 04-04-2007
anbu, thank you for noticing the problem -- I tested using my our set of test data.

In any event, here is a solution that will work with the original post using the
original data:

### Remove unwanted string from the update file.
sed 's/.* \(.*\)/\1/' upd_file > short_upd_file

### Create matched records: in update file and also in the master file.
egrep -f short_upd_file master_file > matched_file

### Create not matched records: in update file and not in matched file.
egrep -v -f matched_file short_upd_file > tmp_not_matched_file

### Add "NOT FOUND" to the end of not matched records.
sed 's/$/NOT FOUND/' tmp_not_matched_file > not_matched_file

### Merge and sort all records into solution file.
sort matched_file not_matched_file > solution_file
# 21  
Old 04-04-2007
Quote:
Originally Posted by CM64
Tomorrow I will try your last suggestion. A unique file is good, but I have to prepend to every line of output the ip of the swith, if not I know where is the port and the associated mac but I don't know where among many switches. So at first look something is missing in your last lines of code.
Code:
GET () { 
     while read Host
     do
         snmpwalk -Onq $Host $Pass $1 | sed -e s/^$1\.// -e s/\"//g | sort | sed  "s#^#${Host} #g">> "/tmp/${Host}.txt"
     done < "${HostFile}"
   }

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Compare and merge two big CSV files

Hi all, i need help. I have two csv files with a huge amount of data. I need the first column of the first file, to be compared with the data of the second, to have at the end a file with the data not present in the second file. Example File1: (only one column) profile_id 57036226... (11 Replies)
Discussion started by: SirMannu
11 Replies

2. Shell Programming and Scripting

Compare 2 csv files by columns, then extract certain columns of matcing rows

Hi all, I'm pretty much a newbie to UNIX. I would appreciate any help with UNIX coding on comparing two large csv files (greater than 10 GB in size), and output a file with matching columns. I want to compare file1 and file2 by 'id' and 'chain' columns, then extract exact matching rows'... (5 Replies)
Discussion started by: bkane3
5 Replies

3. Shell Programming and Scripting

Compare two files and merge into third

Hello: Newbie with Awk. Trying to compare two files and merge data based on CID. Please see the input file format and desired output. Any help is appreciated. TIA Input File1 CID1 --- TYP1 --- DCN1 --- INDATE1 --- IN-DATA1 CID2 --- TYP2 --- DCN2 --- INDATE2 --- IN-DATA2 CID3 ---... (6 Replies)
Discussion started by: wincrazy
6 Replies

4. Shell Programming and Scripting

Merge columns on different files

Hello, I have two files that have this format: file 1 86.82 0.00 86.82 43.61 86.84 0.00 86.84 43.61 86.86 0.00 86.86 43.61 86.88 0.00 86.88 43.61 file 2 86.82 0.22 86.84 0.22 86.86 0.22 86.88 0.22 I would like to merge these two files such that the final file looks like... (5 Replies)
Discussion started by: kayak
5 Replies

5. Shell Programming and Scripting

Compare and Merge files

Hi All, I have two different files as shown below separated by a "|". I need to compare the first column from both the files and if they match merge both the columns. File 1 "S00172012"|"CHRONIC RENAL FAILURE"|""|"I" "S00159962"|"SUBENDO INFRC-INIT EPISD"|""|"I" "S00255303"|"BENIGN... (6 Replies)
Discussion started by: nua7
6 Replies

6. Shell Programming and Scripting

Merge columns of different files

Hi, I have tab limited file 1 and tab limited file 2 The output should contain common first column vales and corresponding 2nd column values; AND also unique first column value with corresponding 2nd column value of the file that contains it and 0 for the second file. the output should... (10 Replies)
Discussion started by: polsum
10 Replies

7. UNIX for Dummies Questions & Answers

Merge two files with two columns being similar

Hi everyone. How can I merge two files, where each file has 2 columns and the first columns in both files are similar? I want all in a file of 4 columns; join command removes the duplicate columns. 1 Dave 2 Mark 3 Paul 1 Apple 2 Orange 3 Grapes to get it like this in the 3rd file:... (9 Replies)
Discussion started by: Atrisa
9 Replies

8. Shell Programming and Scripting

merge the two files which has contain columns

Hi may i ask how to accomplish this task: I have 2 files which has multiple columns first file 1 a 2 b 3 c 4 d second file 14 a 9 .... 13 b 10.... 12 c 11... 11 d 12... I want to merge the second file to first file that will looks like this ... (2 Replies)
Discussion started by: jao_madn
2 Replies

9. UNIX for Dummies Questions & Answers

compare columns from 2 files and merge

Dear all, Being new to Unix i have a problem. I have 2 files: File 1: 118,1,0,2,3,0,5,0.3,0,0.3,0.6,1 118,2,1,2,2,0,5,0.4,0,0.4,0.4,1 118,4,2,0,3,0,5,0.7,0,0.3,0.6,1 118,6,4,1,0,0,5,0.8,0,0.2,0,1 File 2: 118,1,BFGL-NGS-109695,3610326,0,18,1,0.556,0.389,0.056,0.25,0.8183... (2 Replies)
Discussion started by: samwilkinson
2 Replies

10. Shell Programming and Scripting

compare the column from 3 files and merge that line

I have 3 file, each of has got 80000 records. file1.txt ----------------------- ABC001;active;modify;accept; ABC002;notactive;modify;accept; ABC003;notactive;no-modify;accept; ABC004;active;modify;accept; ABC005;active;no-modify;accept; file2.txt ---------------------------... (8 Replies)
Discussion started by: ganesh_mak
8 Replies
Login or Register to Ask a Question