我想用另一个文件过滤文件。 我有一个文件d3_tmp和m2p_tmp;它们分别是:awk:用另一个文件过滤文件
$ cat d3_tmp
0x000001 0x4d 2
0x1107ce 0x4e 2
0x111deb 0x6b 2
$ cat m2p_tmp
mfn=0x000001 ==> pfn=0xffffffffffffffff
mfn=0x000002 ==> pfn=0xffffffffffffffff
mfn=0x000003 ==> pfn=0xffffffffffffffff
我想打印出m2p_tmp其第二列中的行不等于d3_tmp的第一列。 (该文件被分割以\吨和=)
所以所需的结果是:
mfn=0x000002 ==> pfn=0xffffffffffffffff
mfn=0x000003 ==> pfn=0xffffffffffffffff
然而,我使用下面的AWK命令之后:
awk -F '[\t=]' ' FNR==NR { print $1; a[$1]=1; next } !($2 in a){printf "%s \t 0\n", $2}' d3_tmp m2p_tmp
结果是:
0x000001
0x1107ce
0x111deb
0x000001 0
0x000002 0
0x000003 0
我不知道为什么“$ 2在一个”不起作用。 任何人都可以帮忙吗?
非常感谢!
有一个尾随空间。 '0x000002'!='0x000002' –
非常感谢你威廉!我知道了! – Mike
您更改了主题,现在源文件格式不同。你可以在新的要求中讨论吗?否则,如果他们看到提供的解决方案,它会混淆他人。 – BMW