加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

bash – 如何使用终端将mbox文件拆分为n-MB大块?

发布时间:2020-12-15 22:51:05 所属栏目:安全 来源:网络整理
导读:所以我已经 read through this question了,但它对我没有任何帮助.我想将Gmail生成的mbox文件导入另一个webmail服务,但问题是每次导入只允许40 MB的大文件. 所以我不得不将mbox文件拆分为max. 40 MB大文件并一个接一个地导入它们.你会怎么做? 我最初的想法是
所以我已经 read through this question了,但它对我没有任何帮助.我想将Gmail生成的mbox文件导入另一个webmail服务,但问题是每次导入只允许40 MB的大文件.

所以我不得不将mbox文件拆分为max. 40 MB大文件并一个接一个地导入它们.你会怎么做?

我最初的想法是使用其他脚本(formail)将每个邮件保存为单个文件,然后运行脚本将它们组合到40 MB的大文件中,但我仍然不知道如何使用终端执行此操作.

我也查看了拆分命令,但我担心它会切断邮件.
谢谢你的帮助!

解决方法

如果您的mbox采用标准格式,则每封邮件将以From和空格开头:

From someone@somewhere.com

因此,您可以将您的MBOX复制到临时目录,并尝试使用awk逐个消息地处理它,只在任何消息的开头分割.假设我们为每个输出文件发送了1,000条消息:

awk 'BEGIN{chunk=0} /^From /{msgs++;if(msgs==1000){msgs=0;chunk++}}{print > "chunk_" chunk ".txt"}' mbox

然后,您将获得名为chunk_1.txt的输出文件到chunk_n.txt,每个文件最多包含1,000条消息.

如果您不幸遇到Windows(无法理解单引号),则需要将以下内容保存在名为awk.txt的文件中

BEGIN{chunk=0} /^From /{msgs++;if(msgs==1000){msgs=0;chunk++}}{print > "chunk_" chunk ".txt"}

然后输入

awk -f awk.txt mbox

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读