Q:

Search a file using two strings on the same line from another file with grep or another tool

I'm tring to grep strings by files. The issue is, grep doesn't do well with lines that have multiple strings (that I know of), which I want to grep individually. Grep may not be the easiest solution here, but it's what I know, so it's what I'm using. In short, I have 2 files I'm using. The first file (file2.txt) that I'm searching is setup as follows:
a c  
d  
f  
g  
b h  
h  

The second file (file1.txt) that I'm using as my search argument is as follows:
a b

I get no return When I search with grep using:
grep -f file1.txt file2.txt

However I would like a return that brings me these lines because "a" and "b" are found in them in file2:
a c
b h

A:

Probably the simplest thing to do is convert file1.txt to a newline-separated stream, and pass that to grep -f via stdin:
$ tr -s '[:blank:]' '\n' < file1.txt | grep -Ff- file2.txt
a c
b h

