比较两个文件并打印Available和NotFound

时间:2014-05-29 13:54:14

标签: awk

我想比较F11.txt中的第二个字段和F22.txt中的第一个字段。然后,将匹配的案例打印为“可用”,将不匹配的案例打印为“NotFound”。

输入:

F11.txt

a,10,zzz
b,20,zzz
c,50,zzz

F22.txt

10,yyy
20,yyy
30,yyy
40,yyy

尝试过以下命令,

awk -F "," 'NR==FNR{a[$1]=$0;next}{print $0 "," (a[$2]?a[$2]:"NotFound")  }' f22.txt f11.txt

得到以下输出:

a,10,zzz,10,yyy
b,20,zzz,20,yyy
c,50,zzz,NotFound

在哪里更改命令以打印为Available,而不是从匹配案例F22.txt打印订单项。

预期产出:

a,10,zzz,Available
b,20,zzz,Available
c,50,zzz,NotFound

更新问题: 如果字段$ 4不为空,如何包含一个以上的条件然后打印Avilable&未发现进入第4场本身

example Input: F11.txt
a,10,zzz
b,20,zzz,yyy
c,50,zzz

Expected Output:
a,10,zzz,Available
b,20,zzz,yyy
c,50,zzz,NotFound

1 个答案:

答案 0 :(得分:1)

使用此:

awk -F "," 'NR==FNR{a[$1]=$0;next}{print $0 "," (a[$2]?"Available":"NotFound")  }' f22.txt f11.txt