原创

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个
       完美解决。

正文到此结束
本文目录