我有 2 个文本文件。file1
包含一个 ID 列表:
11002
10995
48981
79600
file2
:
10993 item 0
11002 item 6
10995 item 7
79600 item 7
439481 item 5
272557 item 7
224325 item 7
84156 item 6
572546 item 7
693661 item 7
.....
我正在尝试选择file2
ID(第一列)所在的所有行file1
。目前,我正在做的是遍历第一个文件以创建一个正则表达式,如:
^\b11002\b\|^\b10995\b\|^\b48981\b|^\b79600\b
然后运行:
grep '^11002\|^10995\|^48981|^79600' file2.txt
但是当 ID 的数量file1
太大(~2000)时,正则表达式会变得很长并且grep
变慢。还有其他方法吗?我正在使用 Perl + Awk + Unix。