我正在尝试根据两个文件中的第一列进行联接。
到目前为止,我尝试使用的是以下代码
awk '{if (NR==FNR) {a[$1]=$2; next} if ($1 in a) {print $2"|"$3"|""Found"} if(!($1 in a)) {print $2"|"$3"|""Not Found"}}' file1.txt file2.txt > TARGET.txt
file1 file contents
1as.pdf
2as.pdf
3as.pdf
45.pdf
as.pdf
file2 file contents
3ss.pdf 1_2_3_45.csv 4
3s.pdf 1_2_3_45.csv 4
2as.pdf 1_2_3_45.csv 4
1as.pdf 1_2_3_45.csv 4
45.pdf 1_2_3_45_5.csv 1
3.pdf 1_2_3_5.csv 1
答案 0 :(得分:1)
$ awk -v OFS='|' 'NR==FNR{a[$1];next}
{print $2,$3,(($1 in a)?"Found":"Not Found")}' file1 file2
1_2_3_45.csv|4|Not Found
1_2_3_45.csv|4|Not Found
1_2_3_45.csv|4|Found
1_2_3_45.csv|4|Found
1_2_3_45_5.csv|1|Found
1_2_3_5.csv|1|Not Found
但是,由于您没有打印密钥,因此找到的内容并不十分清楚。也许也将第一个字段保留在输出中...