1

我最近开始运行一个纯文本的 usenet 服务器。我的存储工作方式是每篇新闻文章(帖子)都朝着以下方向发展。

/var/spool/news/articles/alt/i/love/cat/1 2 3

数字是个别文章。服务器已经运行了大约几个小时,我已经有 1.5 亿多篇文章。(所以,usenet 显然没有预期的那么死)。我想开始收集垃圾邮件发送者,以便主动将它们添加到我的垃圾邮件过滤器中。垃圾邮件发送者的一个常见方面是他们倾向于同时向多个新闻组发帖。每个消息头都包含以下行:

newsgroups: a,b,c  

每个字母代表另一个新闻组。我想找到一种运行每日报告的方法,告诉我哪些文章在标题的新闻组行中有 >3 个逗号。到目前为止,这是我想出的:

find /var/spool/news/articles/ -name "*" | grep '[0-9]' > list.txt &&
while read i; do echo $i; grep Newsgroups $i | grep -c [\,]; done <list.txt

find 命令将创建每条消息减去任何目录的列表。while 循环将显示消息路径,并在单独的行上显示逗号数。

理想情况下,我希望输出是这样的:

/var/spool/news/articles/alt/i/love/cat/1 2

然后我可以将输出放入电子表格并按逗号数排序,但是路径和数字之间的回车让我很困惑。很抱歉这篇长文,但我想我会解释我在做什么,以防其他人将来尝试做这样的事情。

如果有人对以比我更“理智”的方式执行此操作有任何建议,我也将不胜感激。

4

0 回答 0