我有2个文件,如下所示:
success.txt
amar
akbar
anthony
john
jill
tom
fail.txt
anthony
tom
我想从sucess.txt中删除那些与fail.txt匹配的记录
Expected output:
amar
akbar
john
jill
答案 0 :(得分:2)
我使用fgrep
- 如果可用 - 因为你使用的是固定字符串,它应该更有效率。
fgrep -v -x -f fail.txt success.txt
您需要使用-x
选项以确保只匹配整行,否则会失败,例如tom
会匹配tomas
等成功。
答案 1 :(得分:2)
awk one-liner:还保留原始订单
awk 'NR==FNR{a[$0]=1;next;}!($0 in a)' fail.txt success.txt
答案 2 :(得分:1)
在所有现代Unix系统中, 是一个Posix-standard join(1)程序,see man join.
$ join -v1 success.txt fail.txt