あるファイルからキーと値のペアを取得し、別のファイルからキーリストを取得する

あるファイルからキーと値のペアを取得し、別のファイルからキーリストを取得する

私の問題の簡略化されたバージョンはfile2キーですfile1

たとえば、

file1(鍵付き)

a
d
f

file2(キーバリハリ含む)

a=1
b=2
c=3
d=4
f=5
g=6

予想出力:

a=1
d=4
f=5

私が試したこと:

cat file1 | xargs -I % grep "^%=" file2

このアプローチはうまく機能しますが、ファイルが大きいとパフォーマンスが低下します。 (たとえば、file1には12kラインがあり、file2には20kラインがあります)

最良のアプローチは何ですか?

ベストアンサー1

awkを試してみてください。

$ awk 'NR==FNR{keys[$1]; next} $1 in keys' file1 FS='=' file2
a=1
d=4
f=5

おすすめ記事