gpt4 book ai didi

Linux:从txt列表中检查重复项

转载 作者:太空宇宙 更新时间:2023-11-04 03:43:48 29 4
gpt4 key购买 nike

从列表列表中删除重复项的最佳方法是什么?

我有很多txt

List1.txt   
111
222
333
444
...

List300.txt  
555
666
777
888

现在我有一个新的txt List301.txt,但需要检查重复项并将其删除

List301.txt  
111
666
999
aaa
bbb

我试图使用这样的集合:

cat List* |sort |uniq -u |xargs -i grep {} List* > ListFinal.txt  
List1.txt:222
List1.txt:333
List1.txt:444
List300.txt:555
List300.txt:777
List300.txt:888
List3.txt:999
List3.txt:aaa
List3.txt:bbb

有更好的方法只列出 999,aaa,bbb 或删除 List301.txt 中的 111666 吗?

谢谢~

最佳答案

如果您必须将新文件(List301)放在同一目录中,您可以使用 gawk 来完成:

awk -v fn="f301.txt" 'FILENAME!=fn{a[$0];next}{b[$0]}
END{for(x in b)if(!(x in a))print x}' *.txt

您只需更改 fn 值即可在新文件上应用一行。

如果您可以先将新文件移动到其他目录,例如 new/,您可以:

awk 'FILENAME!="new/f301.txt"{a[$0];next}!($0 in a)' *.txt new/f301.txt

关于Linux:从txt列表中检查重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28874609/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com