Solved

Compare 2 Lists

Posted on 2013-11-14
10
170 Views
Last Modified: 2013-11-14
I need to take two text files. One has one column of data, one word per line. The second one has a number of words per line, but the first line (separated by white space) is the only thing I am interested in removing any lines that do not have "DD" in the word. I would like to print a list of any words that appear in 1.txt that do not appear in 2.txt. They might be in any order, and might appear any number of times. Is there an easy way of doing this?

Examples:

1.txt:
test
DDblah
DDblahBlah

2.txt:
testtest
DDBlahblah

Result:
DDblah

Since the only work that has DD in it, that appears in 1.txt that does not appear in 2.txt is DDblah, only DDlah would be printed.
0
Comment
Question by:stakor
  • 7
  • 3
10 Comments
 

Author Comment

by:stakor
Comment Utility
Sorry, 2.txt should read:

testtest gibberish gibberish
DDBlahblah gibberish gibberish gibberish
0
 
LVL 84

Expert Comment

by:ozo
Comment Utility
I'm confused.
first line (separated by white space)
Do you mean the first word  (separated by white space)?
but the first line (separated by white space) is the only thing I am interested in removing any lines that do not have "DD" in the word.
Does the I am interested in go with is the only thing am interested in or does it go with I am interested in removing any lines?

is
DDblahBlah
the same as
DDBlahblah
?
Do you want to ignore case?


Do you mean you want to do something like:
perl -d -alne '$x{lc $1}|=$#ARGV if /^(DD\S*)/;END{$x{$_}==0 and print for keys %x}' 1.txt 2.txt
0
 

Author Comment

by:stakor
Comment Utility
Sorry for the mistake. The first word is what I was trying to say.
0
 

Author Comment

by:stakor
Comment Utility
And case should be ignored as well.
0
 

Author Comment

by:stakor
Comment Utility
Is there a way to run this without invoking a database mode? I know that would probably the most efficient, but this will likely only be a list of like 50 - 100 items.
0
How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

 

Author Comment

by:stakor
Comment Utility
The reason I ask, is that when I ran it, I was in an interactive mode of some variety.
0
 
LVL 84

Expert Comment

by:ozo
Comment Utility
What is a database mode?
0
 
LVL 84

Accepted Solution

by:
ozo earned 500 total points
Comment Utility
Oops, forgot to turn off debugging when I cut and pasted.
The command should have been.

perl -alne '$x{lc $1}|=$#ARGV if /^(DD\S*)/;END{$x{$_}==0 and print for keys %x}' 1.txt 2.txt
0
 

Author Comment

by:stakor
Comment Utility
When I ran the script, I was sitting at a command prompt that read something like DB1 ? I did not write it down.
0
 

Author Comment

by:stakor
Comment Utility
I think I figured it out.
0

Featured Post

6 Surprising Benefits of Threat Intelligence

All sorts of threat intelligence is available on the web. Intelligence you can learn from, and use to anticipate and prepare for future attacks.

Join & Write a Comment

I've just discovered very important differences between Windows an Unix formats in Perl,at least 5.xx.. MOST IMPORTANT: Use Unix file format while saving Your script. otherwise it will have ^M s or smth likely weird in the EOL, Then DO NOT use m…
On Microsoft Windows, if  when you click or type the name of a .pl file, you get an error "is not recognized as an internal or external command, operable program or batch file", then this means you do not have the .pl file extension associated with …
Explain concepts important to validation of email addresses with regular expressions. Applies to most languages/tools that uses regular expressions. Consider email address RFCs: Look at HTML5 form input element (with type=email) regex pattern: T…
In this tutorial you'll learn about bandwidth monitoring with flows and packet sniffing with our network monitoring solution PRTG Network Monitor (https://www.paessler.com/prtg). If you're interested in additional methods for monitoring bandwidt…

728 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

14 Experts available now in Live!

Get 1:1 Help Now