文件A:
Castro 2
Manuel 5
Daniela 8
...
文件B:
Tom//UK No
Mark//UK No
Castro//Chile Yes
...
Manuel//Spain No
输出:
Castro 2 Yes
Manuel 5 No
...
枚举文件A中的每个名称并在文件B中搜索它,并将第二个字段添加到文件A的字段3中。
我正在尝试什么:
cat File_A.txt | awk -F '\t' '{ print $1 }; $3=`grep -i $2 File_B.txt | head -1 | cut -f2`'
答案1
Awk
解决方案:
awk 'NR == FNR{ names[$1] = $2; next }
{ name = substr($1, 1, index($1, "/") - 1) }
name in names { print name, names[name], $NF }' file1 file2
输出:
Castro 2 Yes
Manuel 5 No
答案2
另一个awk
解决方案:
awk -F'//| ' 'NR==FNR{a[$1]=$3;next}NR>FNR{print $0,a[$1]}' fileB fileA
请注意,如果 fileB 不包含 fileA 中存在的名称,则将打印该行。