我似乎无法绕过这个简单的问题。 我需要打印fileA中的所有模式,但不打印int fileB。
将fileA视为:
aaa
bbb
ccc
ddd
并将fileB视为:
ppppppppppppp_aaa_ppppppppppppp
ppppppppppppp_ccc_ppppppppppppp
ppppppppppppp_ddd_ppppppppppppp
我想要以下结果:
bbb
我试过了
grep -f -v fileA fileB
grep -F -v -f fileA fileB
但似乎无法正常打印。
如何在unix命令中实现此目的?
谢谢
答案 0 :(得分:1)
试试这个:
#!/bin/bash
exec < fileA
while read line; do
grep -q "$line" fileB || echo "$line"
done
答案 1 :(得分:1)
awk -F'_' 'FNR==NR{a[$2]=$1;next}!(a[$0]){print}' fileB fileA
测试如下:
> cat fileA
ppppppppppppp_aaa_ppppppppppppp
ppppppppppppp_ccc_ppppppppppppp
ppppppppppppp_ddd_ppppppppppppp
> cat fileB
aaa
bbb
ccc
ddd
> awk -F'_' 'FNR==NR{a[$2]=$1;next}!(a[$0]){print}' fileA fileB
bbb
>