我正在尝试通过文件来 grep 字符串。问题是,grep 无法很好地处理包含多个字符串(我知道的)的行,我想单独 grep 这些字符串。Grep 可能不是最简单的解决方案,但它是我所知道的,所以我正在使用它。简而言之,我有两个文件正在使用。我要搜索的第一个文件(file2.txt)设置如下:
a c
d
f
g
b h
h
我用作搜索参数的第二个文件(file1.txt)如下:
a b
当我使用 grep 搜索时没有得到任何返回结果:
grep -f file1.txt file2.txt
但是我希望返回这些行,因为在 file2 中发现了“a”和“b”:
a c
b h
答案1
可能最简单的事情就是转换file1.txt
为换行符分隔的流,然后grep -f
通过 stdin 传递它:
$ tr -s '[:blank:]' '\n' < file1.txt | grep -Ff- file2.txt
a c
b h