我有两个文件。文件1和文件2,内容如下。我想在file2中找到文件1的值。
搜索我得到了以下查询,但我无法理解。
查询:
cat file1 | awk -F ',' 'BEGIN{while(getline<"file2"){OFS=",";a[$2]=$1","$2","$3}} {print $0,a[$1]}' >> Final
File1中
173
149
133
162
文件2
140, dog
145, cat
149, rat
133, frog
160, lion
162, total
请注意:正常的grep花费大量时间,因为文件2的大小非常大。
答案 0 :(得分:2)
注意,无需喂食cat
:
$ awk -F, 'NR==FNR{a[$1];next}$1 in a' f1 f12
149, rat
133, frog
162, total
说明:
awk -F, ' # set delimiter to ,
NR==FNR{ # process the first file
a[$1] # hash the keys to a
next # off to the next record
}
$1 in a # for the second file, if key ($1) is found in hash, output record
' f1 f2 # file order is important