Linux Compare two files on different field and print field 1 of first file
Clash Royale CLAN TAG#URR8PPP
up vote
-1
down vote
favorite
I have two files like this.
file 1
1:apple
2:banana
3:pineapple
4:guava
5:orange
and file 2 like this
apple
guava
orange
i just want to compare file 2 with file 1 and print the 1st field for the lines missing in file 2. Required is something like below
3
4
i tried using diff
file1 <(cut -d: -f2 file2)
but got the output as below
1a2,3
> banana
> pineapple
awk diff
add a comment |
up vote
-1
down vote
favorite
I have two files like this.
file 1
1:apple
2:banana
3:pineapple
4:guava
5:orange
and file 2 like this
apple
guava
orange
i just want to compare file 2 with file 1 and print the 1st field for the lines missing in file 2. Required is something like below
3
4
i tried using diff
file1 <(cut -d: -f2 file2)
but got the output as below
1a2,3
> banana
> pineapple
awk diff
add a comment |
up vote
-1
down vote
favorite
up vote
-1
down vote
favorite
I have two files like this.
file 1
1:apple
2:banana
3:pineapple
4:guava
5:orange
and file 2 like this
apple
guava
orange
i just want to compare file 2 with file 1 and print the 1st field for the lines missing in file 2. Required is something like below
3
4
i tried using diff
file1 <(cut -d: -f2 file2)
but got the output as below
1a2,3
> banana
> pineapple
awk diff
I have two files like this.
file 1
1:apple
2:banana
3:pineapple
4:guava
5:orange
and file 2 like this
apple
guava
orange
i just want to compare file 2 with file 1 and print the 1st field for the lines missing in file 2. Required is something like below
3
4
i tried using diff
file1 <(cut -d: -f2 file2)
but got the output as below
1a2,3
> banana
> pineapple
awk diff
awk diff
edited Dec 4 at 6:40
Rui F Ribeiro
38.5k1479128
38.5k1479128
asked Dec 4 at 2:42
upkar
1558
1558
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
up vote
0
down vote
accepted
How about an associative array lookup using Awk?
awk -F: 'NR==FNR a[$1]; next !($2 in a) print $1' file2 file1
2
3
Thanks, it serves my purpose, awk is a line by line processing wont it take too much time for large size files.
– upkar
Dec 4 at 3:35
@upkar Define "large". Note that this solution reads one of the files into memory. If your files are several gigabytes in size, you may have issues.
– Kusalananda
Dec 4 at 7:39
add a comment |
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
0
down vote
accepted
How about an associative array lookup using Awk?
awk -F: 'NR==FNR a[$1]; next !($2 in a) print $1' file2 file1
2
3
Thanks, it serves my purpose, awk is a line by line processing wont it take too much time for large size files.
– upkar
Dec 4 at 3:35
@upkar Define "large". Note that this solution reads one of the files into memory. If your files are several gigabytes in size, you may have issues.
– Kusalananda
Dec 4 at 7:39
add a comment |
up vote
0
down vote
accepted
How about an associative array lookup using Awk?
awk -F: 'NR==FNR a[$1]; next !($2 in a) print $1' file2 file1
2
3
Thanks, it serves my purpose, awk is a line by line processing wont it take too much time for large size files.
– upkar
Dec 4 at 3:35
@upkar Define "large". Note that this solution reads one of the files into memory. If your files are several gigabytes in size, you may have issues.
– Kusalananda
Dec 4 at 7:39
add a comment |
up vote
0
down vote
accepted
up vote
0
down vote
accepted
How about an associative array lookup using Awk?
awk -F: 'NR==FNR a[$1]; next !($2 in a) print $1' file2 file1
2
3
How about an associative array lookup using Awk?
awk -F: 'NR==FNR a[$1]; next !($2 in a) print $1' file2 file1
2
3
answered Dec 4 at 2:57
steeldriver
34k34983
34k34983
Thanks, it serves my purpose, awk is a line by line processing wont it take too much time for large size files.
– upkar
Dec 4 at 3:35
@upkar Define "large". Note that this solution reads one of the files into memory. If your files are several gigabytes in size, you may have issues.
– Kusalananda
Dec 4 at 7:39
add a comment |
Thanks, it serves my purpose, awk is a line by line processing wont it take too much time for large size files.
– upkar
Dec 4 at 3:35
@upkar Define "large". Note that this solution reads one of the files into memory. If your files are several gigabytes in size, you may have issues.
– Kusalananda
Dec 4 at 7:39
Thanks, it serves my purpose, awk is a line by line processing wont it take too much time for large size files.
– upkar
Dec 4 at 3:35
Thanks, it serves my purpose, awk is a line by line processing wont it take too much time for large size files.
– upkar
Dec 4 at 3:35
@upkar Define "large". Note that this solution reads one of the files into memory. If your files are several gigabytes in size, you may have issues.
– Kusalananda
Dec 4 at 7:39
@upkar Define "large". Note that this solution reads one of the files into memory. If your files are several gigabytes in size, you may have issues.
– Kusalananda
Dec 4 at 7:39
add a comment |
Thanks for contributing an answer to Unix & Linux Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f485806%2flinux-compare-two-files-on-different-field-and-print-field-1-of-first-file%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown