私は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 を使用しています。