我正在尝试将价值约 20 年的 Usenet 档案上传到 archive.org,但我的第一批档案被拒绝了,因为一些档案包含以 base64 编码的木马。由于我有大约 400GB 的文件要处理,因此手动修复是不可能的。所有文件均为 mbox 格式,即纯文本。我的第一个想法是查找并替换 mbox 文件中包含“Content-Type: application/x-msdownload”的所有消息。那可能相当困难。我现在认为更简单的蛮力方法是删除所有 base64 块。
从这个问题中,我看到可以使用 grep 找到 base64 块,但我不知道如何使用 sed 设置相同的东西,这就是我要问的原因。谢谢!
编辑:到目前为止我尝试过的
根据这个页面,^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$
应该是查找base64文本所需的正则表达式,但是当我尝试将它与sed一起使用时,它实际上并没有工作,或者至少它没有达到我的预期。
例子:
cat clari.local.california.sfbay.biz.mbox | sed -e '#^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$#d' > clari.local.california.sfbay.biz.mbox.test
clari.local.california.sfbay.biz.mbox.test 仍然包含 base64 文本。