2つのファイルがあります。
$ cat File1
A
B
C
$ cat File2
A aaa B
D bbb A
B aaa h
File1
でパターンを検索したいですFile2
。これは可能な方法ですが、で報告されたパターンのみをgrep -f File1 File2
検索します。File1
$1
File2
出力例:
$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