如何找到至少包含一组单词中的一个作为前缀的所有行

How to find all lines which contain at least one of a set of words as a prefix

我有一个单词文本文件,每行一个,名为 A。

我还有一个文本文件B.

如何找到 B 中至少有一个 A 中的单词作为前缀的所有行?

我希望能够从命令行执行此操作,也许可以使用 grep,但任何其他命令行解决方案也都很棒。

例如,如果 A 是

apple
bob
cheese

B 是

aple
bob123
ches

我希望返回行 bob123。

一种方法是使用bashprocess substitutionsed为A的每一行添加一个正则表达式行首^锚点,然后告诉 grep 将其用作要搜索的正则表达式列表:

$ grep -f <(sed 's/^/^/' a.txt) b.txt
bob123