awk read one delimited file, search another delimited file


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting awk read one delimited file, search another delimited file
# 1  
Old 11-19-2012
awk read one delimited file, search another delimited file

Hello folks, I have another doozy. I have two files. The first file has four fields in it. These four fields map to different locations in my second file. What I want to do is read the master file (file 2 - 23 fields) and compare each line against each record in file 1. If I get a match in all four fields, I want to toss that record out.

Code:
File1:
Group|Cur_ID|Cur_Name|Hostname
  1     8        9     13 (where they map in file2)  

File2:
Group|OldID|Old_Name|Old_Sess|Old_Sess_Date|Old_Type|Old_UID|Cur_ID|Cur_Name|Cur_Sess|Cur_Sess_Date|Cur_Type|Hostname|Acct|MRR|ASR|BE|CD|Cur_UID|Fld20|Fld21|Fld22|Fld23

I gave a sample of what the headers would basically be for all the fields, but the idea is the same as i'm more concerned with matching fields up as the values change for each record.
# 2  
Old 11-19-2012
What file you want to eliminate the records from? file1 or file2?
# 3  
Old 11-19-2012
I want to eliminate records from file 2. File one has the matching field criteria that I want to find in file 2 (master file) and reject.
# 4  
Old 11-19-2012
Code:
awk '
  FNR==NR {f1[$1,$2,$3,$4];next}
  !(($1 SUBSEP $8 SUBSEP $9 SUBSEP $13) in f1)
' file1 file2


Last edited by vgersh99; 11-19-2012 at 01:02 PM.. Reason: switched file1/file2
# 5  
Old 11-19-2012
Thank you so much for your help. I had to modify it a little, but it worked. Here is the updated code that worked:

Code:
awk -F\| '
  FNR==NR {f1[$1,$2,$3,$4];next}
  !(($1 SUBSEP $8 SUBSEP $9 SUBSEP $13) in f1)
' file1 file2 >> new_outfile

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Need to convert a pipe delimited text file to tab delimited

Hi, I have a rquirement in unix as below . I have a text file with me seperated by | symbol and i need to generate a excel file through unix commands/script so that each value will go to each column. ex: Input Text file: 1|A|apple 2|B|bottle excel file to be generated as output as... (9 Replies)
Discussion started by: raja kakitapall
9 Replies

2. Shell Programming and Scripting

Read delimited file

I have a delimited file (,) containing Name, Amount,Type,Address,zip,Tel and Extn. If any of this column information is missing (except TYPE and Extn), I need to print that a spefic column value is missing in my output. Example: row 2 is missing ZIP and the out put should contain NOZIP in... (1 Reply)
Discussion started by: meet_calramz
1 Replies

3. Shell Programming and Scripting

How to make tab delimited file to space delimited?

Hi How to make tab delimited file to space delimited? in put file: ABC kgy jkh ghj ash kjl o/p file: ABC kgy jkh ghj ash kjl Use code tags, thanks. (1 Reply)
Discussion started by: jagdishrout
1 Replies

4. Shell Programming and Scripting

Help with converting Pipe delimited file to Tab Delimited

I have a file which was pipe delimited, I need to make it tab delimited. I tried with sed but no use cat file | sed 's/|//t/g' The above command substituted "/t" not tab in the place of pipe. Sample file: abc|123|2012-01-30|2012-04-28|xyz have to convert to: abc 123... (6 Replies)
Discussion started by: karumudi7
6 Replies

5. Shell Programming and Scripting

How to convert a space delimited file into a pipe delimited file using shellscript?

Hi All, I have space delimited file similar to the one as shown below.. I need to convert it as a pipe delimited, the values inside the pipe delimited file should be as highlighted... AA ATIU2345098809 009697 005374 BB ATIU2345097809 005445 006518 CC ATIU9685098809 003215 003571 DD... (7 Replies)
Discussion started by: nithins007
7 Replies

6. Shell Programming and Scripting

Read columns from delimited file in UNIX

Hello I need to read the columns from a flat file delimited by Hex code X02. The Sample file is Red^B1000^BJohn Blue^B2000^BSam Green^B3000^BDan Note: Hex code X02 shows as ^B in vi. I need to read the file and process the columns in each row. I tried using awk -F command but... (7 Replies)
Discussion started by: injey
7 Replies

7. Shell Programming and Scripting

Awk search for string pattern in delimited file

I've got a semicolon delimited file. I would like to search for fields that match a pattern, and not hardcoded eg "mth". *th=something If the delimited field fulfills this condition, eg. mth=value I would like to print out both key and value for some number comparison. eg. if value > "12"... (5 Replies)
Discussion started by: alienated
5 Replies

8. Shell Programming and Scripting

convert a pipe delimited file to a':" delimited file

i have a file whose data is like this:: osr_pe_assign|-120|wg000d@att.com|4| osr_evt|-21|wg000d@att.com|4| pe_avail|-21|wg000d@att.com|4| osr_svt|-11|wg000d@att.com|4| pe_mop|-13|wg000d@att.com|4| instar_ready|-35|wg000d@att.com|4| nsdnet_ready|-90|wg000d@att.com|4|... (6 Replies)
Discussion started by: priyanka3006
6 Replies

9. UNIX for Dummies Questions & Answers

Converting Space delimited file to Tab delimited file

Hi all, I have a file with single white space delimited values, I want to convert them to a tab delimited file. I tried sed, tr ... but nothing is working. Thanks, Rajeevan D (16 Replies)
Discussion started by: jeevs81
16 Replies

10. Shell Programming and Scripting

Converting Tab delimited file to Comma delimited file in Unix

Hi, Can anyone let me know on how to convert a Tab delimited file to Comma delimited file in Unix Thanks!! (22 Replies)
Discussion started by: charan81
22 Replies
Login or Register to Ask a Question