如何保留以数字列表 (linux) 开头的行?

How do I keep lines starting with a list of numbers (linux)?

我有一个如下所示的文件:

0   123   word
1   324   word
2   234   word
3   53    word
4   666   word
5   23    word
6   4     word
...

我一直试图只保留以一些数字开头的行。我的文件中有数字,如下所示:

2
4
5
...

所以最终文件应该是这样的:

2   234   word
4   666   word
5   23    word
...

我想我可以使用 grep (grep "2" input > output) 获取以特定字符开头的行,但是一个一个地做是不可行的,我不知道如何做一个列表文件中的数字。有人可以帮我吗?

使用 GNU awk:

awk 'NR == FNR {a[]; next}  in a {print}' file1 file2

其中 file1 包含要保留的数字,每行一个,file2 是要过滤的文件。