Sed 通过比较2个文件来左外连接

Sed 通过比较2个文件来左外连接,sed,awk,grep,Sed,Awk,Grep,我有2个文件,如下所示: success.txt amar akbar anthony john jill tom fail.txt anthony tom 我想从suces.txt中删除那些与fail.txt匹配的记录 Expected output: amar akbar john jill 如果可以的话,我会使用固定字符串,这样会更有效 fgrep -v -x -f fail.txt success.txt 您需要使用-x选项来确保只匹配整行,否则失败(如tom)将匹配成功(如to

我有2个文件,如下所示:

success.txt
amar
akbar
anthony
john
jill
tom

fail.txt
anthony
tom
我想从suces.txt中删除那些与fail.txt匹配的记录

Expected output:
amar
akbar
john
jill
如果可以的话,我会使用固定字符串,这样会更有效

fgrep -v -x -f fail.txt success.txt

您需要使用-x选项来确保只匹配整行,否则失败(如tom)将匹配成功(如tomas)。

awk one liner:也保持原始顺序

awk 'NR==FNR{a[$0]=1;next;}!($0 in a)' fail.txt success.txt
在所有现代Unix系统中都有join1程序


输出顺序是否重要,或者是否可以排序?是否可以排序。但最好保持同样的秩序。我不确定这是否会起作用,cat success.txt | grep-v-f fail.txt会起作用,只是可能会删除一些额外的名称,例如“tom”将与“tomas”匹配。
$ join -v1 success.txt fail.txt