Visit The New, Modern Unix Linux Community


Remove lines from File.A based on criteria in File.B


 
Thread Tools Search this Thread
Top Forums UNIX for Beginners Questions & Answers Remove lines from File.A based on criteria in File.B
# 1  
Remove lines from File.A based on criteria in File.B

Hello,

I have two files of the following form. I would like to remove from File.A where the first three colum matches values in File.B to give the output in File.C

File.A
Code:
121	54321	PQR	CAT
122	765431	ABC	DOG
124	98765	ZXY	TIGER
125	86432	GEF	LION


File.B
Code:
122	765431	ABC
125	86432	GEF

I would like my output to be:
File.C
Code:
121	54321	PQR	CAT
124	98765	ZXY	TIGER

Thank you for your input!
Gussi
# 2  
Hello Gussifinknottle,

Could you please try following and let me know if this helps you.
Code:
awk 'FNR==NR{a[$1]=$0;next} !($1 in a)' File.B File.A

Thanks,
R. Singh
# 3  
To test for first THREE columns as specified, try
Code:
awk '{IX = $1 $2 $3} FNR == NR {T[IX] = $0; next} !(IX in T)' file2 file1

This User Gave Thanks to RudiC For This Post:
# 4  
If it's really as simple as this format and you can be sure that you won't get false matches hiding some of your desired output, would you be okay with a grep command?

Perhaps this will do it for you:-
Code:
grep -vf File.B File.A > File.C




I hope that this helps.


Kind regards,
Robin
# 5  
Quote:
Originally Posted by RudiC
To test for first THREE columns as specified, try
Code:
awk '{IX = $1 $2 $3} FNR == NR {T[IX] = $0; next} !(IX in T)' file2 file1

Thanks! @RudiC - I tried and it works SmilieSmilie.

@Robin - My data files for the inquiry were for a toy example - the grep does not work (which I tried before posting in the forum)

@R.Singh - I need to test for 3 columns, as @RudiC pointed out.

Thanks all for your input!
~Gussi

Previous Thread | Next Thread
Thread Tools Search this Thread
Search this Thread:
Advanced Search

Test Your Knowledge in Computers #916
Difficulty: Easy
In Javascript, the console is an object which provides access to the browser debugging console.
True or False?

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Match based on criteria to file

Trying to match $1 of target.txt to $5 of file.txt. If there is a match then in an output.txt file $1,$1 (row underneath),$6,$4,$7 from file.txt are printed on the same line as $1 of target.txt. The input is from excel and the output should be tab-deliminated. Thank you :). target.txt... (2 Replies)
Discussion started by: cmccabe
2 Replies

2. Shell Programming and Scripting

Remove duplicate lines from file based on fields

Dear community, I have to remove duplicate lines from a file contains a very big ammount of rows (milions?) based on 1st and 3rd columns The data are like this: Region 23/11/2014 09:11:36 41752 Medio 23/11/2014 03:11:38 4132 Info 23/11/2014 05:11:09 4323... (2 Replies)
Discussion started by: Lord Spectre
2 Replies

3. Shell Programming and Scripting

Copying section of file based on search criteria

Hi Guru's, I am new to unix scripting. I have a huge file with user details in it(file2) and I have another file with a list of users(file1). Script has to search a user from file1 and get all the associated lines from file2. Example: fiel1: cn=abc cn=DEF cn=xyx File 2: dn:... (10 Replies)
Discussion started by: Samingla
10 Replies

4. UNIX for Dummies Questions & Answers

Remove lines in a positional file based on string value

Gurus, I am relatively new to Unix scripting and am struck with a problem in my script. I have positional input file which has a FLAG indicator in at position 11 in every record of the file. If the Flag has value =Y, then the record from the input needs to be written to a new file.However if... (3 Replies)
Discussion started by: gsam
3 Replies

5. Shell Programming and Scripting

Remove certain lines from file based on start of line except beginning and ending

Hi, I have multiple large files which consist of the below format: I am trying to write an awk or sed script to remove all occurrences of the 00 record except the first and remove all of the 80 records except the last one. Any help would be greatly appreciated. (10 Replies)
Discussion started by: nwalsh88
10 Replies

6. Shell Programming and Scripting

Select lines from a file based on a criteria

Hi I need to select lines from a txt file, I have got a line starting with ZMIO:MSISDN= and after a few line I have another line starting with 'MOBILE STATION ISDN NUMBER' and another one starting with 'VLR-ADDRESS' I need to copy these three lines as three different columns in a separate... (3 Replies)
Discussion started by: Tlcm sam
3 Replies

7. UNIX for Dummies Questions & Answers

remove duplicates based on a field and criteria

Hi, I have a file with fields like below: A;XYZ;102345;222 B;XYZ;123243;333 C;ABC;234234;444 D;MNO;103345;222 E;DEF;124243;333 desired output: C;ABC;234234;444 D;MNO;103345;222 E;DEF;124243;333 ie, if the 4rth field is a duplicate.. i need only those records where... (5 Replies)
Discussion started by: wanderingmind16
5 Replies

8. UNIX for Advanced & Expert Users

need to get a portion of entries in file based on a criteria --- Help please

All, Below is the file, what i need to do is take the text in between the /*-- and --*/ , i mean the jobs. Then i have grep for system name . If the job is there in system 1 i have to print to a file. Basically i want to take all the jobs that are in system1 to another file . because... (7 Replies)
Discussion started by: arunkumar_mca
7 Replies

9. Shell Programming and Scripting

Remove lines based on contents of another file

So, this issue is driving me nuts! I was hoping to get a lending hand here... I have 2 files: file1.txt contains: this is example1 this is example2 this is example3 this is example4 this is example5 file2.txt contains: example3 example5 Basically, I need a script or command to... (4 Replies)
Discussion started by: bashshadow1979
4 Replies

10. Shell Programming and Scripting

remove lines based on score criteria

Hi guys, Please guide for Solution. PART-I INPUT FILE (has 2 columns ID and score) TC5584_1 93.9 DV161411_2 79.5 BP132435_5 46.8 EB682112_1 34.7 BP132435_4 29.5 TC13860_2 10.1 OUTPUT FILE (It shudn't contain the line ' BP132435_4 29.5 ' as BP132435 is repeated... (2 Replies)
Discussion started by: smriti_shridhar
2 Replies

Featured Tech Videos