Compare 2 files using awk but exclude header record from each file


 
Thread Tools Search this Thread
Top Forums UNIX for Beginners Questions & Answers Compare 2 files using awk but exclude header record from each file
# 1  
Old 04-18-2020
Compare 2 files using awk but exclude header record from each file

Hi Forum.

I have 2 files (a.txt, b.txt) that I need to match on the first column but need to exclude the header records during comparison from each of the 2 files. This is what I have so far.

Code:
a.txt
# header record
1,1,1,1,
2,3,4,5
3,4,5,6

b.txt
# header record
2,two,three,foor

Code:
awk -F","  'FNR==NR{a[$1]=$2 FS $3","$4","$5","$6","$7","$8;next} $1 in a {print $0, a[$1]}' OFS='|' b.txt a.txt

Output using current code:
#|,,,,,,
2,3,4,5|two,three,foor,,,,

Desired Output:
2,3,4,5|two,three,foor,,,,

Thank you for all your help.
# 2  
Old 04-18-2020
wouldn't FNR>1 do the job?
# 3  
Old 04-18-2020
Where would I put that additional condition in my code?

I tried the following but not getting the desired output.

Code:
awk -F","  'FNR > 1; FNR==NR{a[$1]=$2 FS $3","$4","$5","$6","$7","$8;next} $1 in a {print $0, a[$1]}' OFS='|' b.txt a.txtawk -F","  'FNR==NR{a[$1]=$2 FS $3","$4","$5","$6","$7","$8;next} $1 in a {print $0, a[$1]}' OFS='|' b.txt a.txt

Output:
#|,,,,,,
2,3,4,5|two,three,foor,,,,

Code:
awk -F"," 'FNR>1' 'FNR==NR{a[$1]=$2 FS $3","$4","$5","$6","$7","$8;next} $1 in a {print $0, a[$1]}' OFS='|' b.txt a.txt
2,two,three,foor

Output:
1,1,1,1,
2,3,4,5
3,4,5,6

Thanks.
# 4  
Old 04-18-2020
Code:
awk -F","  'FNR==1{next}; ....'

This User Gave Thanks to vgersh99 For This Post:
# 5  
Old 04-18-2020
Final Code

This is the final code after some help from vgersh99:

Code:
awk -F"," 'FNR==1{next};FNR==NR{a[$1]=$2 FS $3","$4","$5","$6","$7","$8;next} $1 in a {print $0, a[$1]}' OFS='|' a.txt b.txt

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Compare two files and find match and print the header of the second file

Hi, I have two input files; file1 and file2. I compare them based on matched values in 1 column and print selected columns of the second file (file2). I got the result but the header was not printed. i want the header of file2 to be printed together with the result. Then i did below codes:- ... (3 Replies)
Discussion started by: redse171
3 Replies

2. Shell Programming and Scripting

Insert a header record (tab delimited) in multiple files

Hi Forum. I'm struggling to find a solution for the following issue. I have multiple files a1.txt, a2.txt, a3.txt, etc. and I would like to insert a tab-delimited header record at the beginning of each of the files. This is my code so far but it's not working as expected. for i in... (2 Replies)
Discussion started by: pchang
2 Replies

3. Shell Programming and Scripting

Exclude the header row while splitting the file

Hi All, i have script like ... "TYPE_ID" "ID" "LIST_ID" "18" "52010" "1059" "18" "52010" "1059" "18" "52010" "1059" "18" "52010" "1059" i am using the below code it's not taking the header row. awk -F"\t" -v file=test1.txt -v file1=test2.txt ' { if(... (7 Replies)
Discussion started by: bmk
7 Replies

4. Shell Programming and Scripting

How to compare current record,with next and previous record in awk without using array?

Hi! all can any one tell me how to compare current record of column with next and previous record in awk without using array my case is like this input.txt 0 32 1 26 2 27 3 34 4 26 5 25 6 24 9 23 0 32 1 28 2 15 3 26 4 24 (7 Replies)
Discussion started by: Dona Clara
7 Replies

5. Shell Programming and Scripting

Exclude the header row in the file to validate

Hi All, File contains header row.. we need to exclude the header row...no need to validate the first row in the file. Data in the file should take valid data(two columns)..we need to exclude the more than two columns in the file except the first line. email|firstname a|123|100 b|345... (4 Replies)
Discussion started by: bmk
4 Replies

6. Shell Programming and Scripting

AWK exclude first and last record, sort and print

Hi everyone, I've really searched for a solution to this and this is what I found so far: I need to sort a command output (here represented as a "cat file" command) and from the second down to the second-last line based on the second row and then print ALL the output with the specified section... (7 Replies)
Discussion started by: dentex
7 Replies

7. Shell Programming and Scripting

how to exclude the header in shell script using awk

Hello Everyone In my shell script, I am retrieving the cluster ID and node number of an LPAR using the following command - lsclcfg -l This command's output looks as follows - CLUSTER_NAME CLUSTER_ID NODE_NR sch1h004 6104567 3 I want to store only the... (3 Replies)
Discussion started by: gates1580
3 Replies

8. Shell Programming and Scripting

Skip parsing the header record - Awk

Guys.... Got a scenario in which I need to skip parsing the header record while I do an awk. Does awk has the flexibility to accomplish this?. If so, how do we do this?. Thanks !!! -Anduzzi :) (2 Replies)
Discussion started by: anduzzi
2 Replies

9. Shell Programming and Scripting

awk script to update header record

I am using HP UX and think this may be done with awk but bot sure. I have a file with a several header records and undeneath many detail records I need to put in the header record the number of detail records above this header record and number of detail records below this header record Header... (5 Replies)
Discussion started by: klut
5 Replies

10. UNIX for Dummies Questions & Answers

How to exclude a record from unix file

I want to exclude records from my unix file that have a specific pattern. How can I do this? Thanks. Ryan (1 Reply)
Discussion started by: Ryan2786
1 Replies
Login or Register to Ask a Question