Visit Our UNIX and Linux User Community


print a line when NOT in a file


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting print a line when NOT in a file
# 1  
Old 11-08-2009
print a line when NOT in a file

I have a list of words, one word per line, LIST1.TXT that I want to check for in another file, PARAGRAPHS.TXT. If the line from LIST1.TXT is NOT in PARAGRAPHS.TXT I want to print it to screen. The keyword here is NOT. If the word from LIST1.TXT is NOT in the file PARAGRAPHS.TXT, then I want to know about it. Print it to screen. Write it to file. No matter.
# 2  
Old 11-08-2009
How about (case sensitive):
Code:
join -v 1 <(sort -u<list1.txt) <(grep -o '\b[^[:space:]]*\b' paragraphs.txt |sort -u)

case insensitive:
Code:
join -v 1 <(sort -u<list1.txt|tr 'A-Z' 'a-z') <(grep -o '\b[^[:space:]]*\b' paragraphs.txt |sort -u|tr 'A-Z' 'a-z')

(I chose this because of speed. It should be proportional to (3-5)*n (n=size of biggest file) instead of m*n for a loop. )

Last edited by Scrutinizer; 11-08-2009 at 06:53 PM..
# 3  
Old 11-08-2009
Quote:
Originally Posted by ajp7701
I have a list of words, one word per line, LIST1.TXT that I want to check for in another file, PARAGRAPHS.TXT. If the line from LIST1.TXT is NOT in PARAGRAPHS.TXT I want to print it to screen. The keyword here is NOT. If the word from LIST1.TXT is NOT in the file PARAGRAPHS.TXT, then I want to know about it. Print it to screen. Write it to file. No matter.

Code:
grep -vf PARAGRAPHS.TXT LIST1.TXT

# 4  
Old 11-08-2009
And yet another way which, depending upon what you are doing next, may or may not be more convenient:

Code:
for i in `cat list1.txt`; do grep -q $i paragraph.txt || echo $i; done

or
Code:
for i in `cat list1.txt`; do grep -iq $i paragraphs.txt || echo $i; done

# 5  
Old 11-08-2009
Quote:
Originally Posted by cfajohnson
Code:
grep -vf PARAGRAPHS.TXT LIST1.TXT

Hi CFA, this does not seem to work right?
# 6  
Old 11-08-2009
Quote:
Originally Posted by Scrutinizer
Hi CFA, this does not seem to work right?

What does "does not seem to work right" mean? What does happen that shouldn't? What doesn't happen that should?

Perhaps I got the filenames backwards (the OP was a little unclear).

Code:
grep -vf LIST1.TXT PARAGRAPHS.TXT

# 7  
Old 11-08-2009
With list1.txt as the first parameter I get its content as output. The other way around I get no output. As I understands it the OP is looking for those words that are in list1.txt (one word per line) and that are missing from the paragraphs in paragraphs.txt.

Previous Thread | Next Thread
Test Your Knowledge in Computers #602
Difficulty: Medium
MySQL 8.0 incorporates a transactional data dictionary that stores information about database objects.
True or False?

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Reading a file line by line and print required lines based on pattern

Hi All, i want to write a shell script read below file line by line and want to exclude the lines which contains empty value for MOUNTPOINT field. i am using centos 7 Operating system. want to read below file. # cat /tmp/d5 NAME="/dev/sda" TYPE="disk" SIZE="60G" OWNER="root"... (4 Replies)
Discussion started by: balu1234
4 Replies

2. UNIX for Beginners Questions & Answers

Output to file print as single line, not separate line

example of problem: when I echo "$e" >> /home/cogiz/file.txt result prints to file as:AA BB CC I need it to save to file as this:AA BB CC I know it's probably something really simple but any help would be greatly appreciated. Thank You. Cogiz (7 Replies)
Discussion started by: cogiz
7 Replies

3. Shell Programming and Scripting

Grep in file and print in the line

hi # cat test.txt Test Date: 20131008 1515 -------------------------------------------------------------------------------------------------------------- Saxx = Proc_m0_s13 : 1640 Saxx = Proc_m0_s15 : 1791 Saxx = Proc_m0_s17 ... (2 Replies)
Discussion started by: justbow
2 Replies

4. Shell Programming and Scripting

print from - to line of a file

Need to print file contents from line number A to line-number B eg: # cat -n a 1 aaaaaaaaaaaaa 2 bbbbbbbbbbbbb 3 ccccccccccccc 4 ddddddddddddd 5 eeeeeeeeeeeee 6 ffffffffffffff 7 gggggggggggg ## Need to print contents from linenum 3-6 only... (9 Replies)
Discussion started by: Shirishlnx
9 Replies

5. Shell Programming and Scripting

Match a line in File 1 with Column in File 2 and print whole line in file 2 when matched

Hi Experts, I am very new to scripting and have a prb since few days and it is urgent to solve so much appreciated if u help me. i have 2 files file1.txt 9647810043118 9647810043126 9647810043155 9647810043161 9647810043166 9647810043185 9647810043200 9647810043203 9647810043250... (22 Replies)
Discussion started by: mustafa.abdulsa
22 Replies

6. Shell Programming and Scripting

read file line by line print column wise

I have a .csv file which is seperated with (;) inputfile --------- ZZZZ;AAAA;BBB;CCCC;DDD;EEE; YYYY;BBBB;CCC;DDDD;EEE;FFF; ... ... reading file line by line till end of file. while reading each line output format should be . i need to print only specific columns let say 5th... (2 Replies)
Discussion started by: rocking77
2 Replies

7. Shell Programming and Scripting

Print first and last line of a file

I need to print ist and last line of a file My file having abc def dfg jkl bnm outout will be abc bnm ---------- Post updated at 11:24 PM ---------- Previous update was at 11:16 PM ---------- pls help me out. Can any one do this. (5 Replies)
Discussion started by: pritish.sas
5 Replies

8. Shell Programming and Scripting

print line whatever line i want in a file... there any way

Hi friends I need to get what ever line number i want Supplier.profile ----------------- SFTP/INVTRAN SFTP/INVSNAP GATEWAY/INVTRAN GATEWAY/INVSNAP ---------------- exec 0<$Supplier.profile while read LINE do echo $LINE (1 Reply)
Discussion started by: kittusri9
1 Replies

9. Shell Programming and Scripting

Print file line by line

I have a file where each line is a stream of text as follows, table1, select * from table1 table2, select * from table2 How do i loop through the file line by line? I have tried doing the following for line in `cat file.txt` do echo $line done and ... cat file.txt|while read line... (2 Replies)
Discussion started by: handak9
2 Replies

10. UNIX for Dummies Questions & Answers

Print one line of Existing File

Hi all, I need to know what command/s I can use to print lines from a file. I cannot do pattern matching, so grepping for a string is not possible. I'd like to say "print line 3" etc. Any ideas? Ta. (2 Replies)
Discussion started by: danhodges99
2 Replies

Featured Tech Videos