linux系统去除文本文件重复行(qq邮箱发邮件处理前)
温馨提示:
本文最后更新于 2022年02月28日,已超过 800 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我。
接着上次我们copy出来的1287个qq号后续(qq邮箱发邮件处理前)
背景
我们存在一个已发送的文件列表(每行都是一个qq邮箱),一个垃圾的文件列表,包括发不出去的垃圾邮箱,可能由于对方没有开通qq邮箱等。
再加上此次需要的qq邮箱(1287)。
如何通过去重复得到此次实际需要发送的邮箱号列表,即不和之前的重复,1287个中去除已发送,去除垃圾得到的文件。
解决方案
1.存放1287行qq号于word,保存编码为utf-8,文件名1.txt,gab.txt 垃圾文件1032个
sended.txt 已发送8932个
2.去除本身的重复2.txt
命令:
sort 1.txt| uniq > 2.txt
1286个
3.添加后缀为文件3.txt
命令:
awk '{print $0 "@qq.com"}' 2.txt > 3.txt
这时vi 3.txt可以看到有^M标记,这是由于win和linux系统的编码不同导致
可以做替换
vi 3.txt
:%s/^M//g
去掉所有的^M标记,注意需要使用CTRL -V CTRL -M打出来,不能直接打出来1286 substitutions on 1286 lines 删除完毕
:wq
保存退出4.与已发送的交集文件
sort sended.txt 3.txt | uniq -d > 4.txt
184个
去除
sort 3.txt 4.txt 4.txt | uniq -u > 5.txt
1102个
5.与垃圾的交集文件
sort 5.txt gab.txt | uniq -d > 6.txt
54个
去除
sort 5.txt 6.txt 6.txt | uniq -u > 7.txt
1048个
6.梳理
最初的1287,重复1个,已发送184个,垃圾54个
1287-1-184-54=1048个
完美解决。
正文到此结束
- 本文标签: qq Linux 邮件
- 本文链接: https://blog.voiceclouds.cn/article/49
- 版权声明: 本文由广州海琳信息技术有限公司原创发布,转载请遵循《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权