file1からfile2までのgrepパターン列

file1からfile2までのgrepパターン列

2つのファイルがあります。

$ cat File1
A
B
C
$ cat File2
A aaa B
D bbb A
B aaa h

File1でパターンを検索したいですFile2。これは可能な方法ですが、で報告されたパターンのみをgrep -f File1 File2検索します。File1$1File2

出力例:

$cat File3
A aaa B
B aaa h

ベストアンサー1

そしてawk

awk 'NR==FNR{a[$0]=NR; next} a[$1]' f1.txt f2.txt
  • NR==FNR{a[$0]=NR; next}:最初のファイル(f1.txt)の場合は、レコードを連想配列のキーとして、そのレコード番号を値として取ります。

  • a[$1]:2番目のファイル(f2.txt)の場合、最初のフィールドが配列のキーである場合にのみレコードを印刷します。a

例:

% cat f1.txt                                       
A
B
C

% cat f2.txt                                       
A aaa B
D bbb A
B aaa h

% awk 'NR==FNR{a[$0]=NR; next} a[$1]' f1.txt f2.txt
A aaa B
B aaa h

おすすめ記事