移动,根据内容和大小重命名大量文本文件

时间:2011-06-28 09:50:19

标签: regex macos batch-file applescript bulk

* 7月4日更新 *

我最终做了以下事情:

  1. 按日期排序
  2. 检查最后一句话是否相同
  3. 如果是:如果更大 - >这是要选择的新消息。如果更小:删除。如果找不到相同的内容,请选择此项并移至另一个文件夹。
  4. 如果否:继续前进。再次循环,直到检查了具有特定日期的所有文件。
  5. 谢谢大家的帮助!!


    我正在忙于一个大型项目,我需要过滤大量的电子邮件,通过thunderbird从gmail导入。但是有一个很大的问题。 因为gmail使用对话,但是thunderbird没有像这样格式化它们,我所拥有的是每封电子邮件的文本文件,尽管完整的先前对话也是如此。每个回复都有一个全新的文本文件。澄清一个对话的例子:

    Me:Hi, how are you?
    You, replying: Good!
    Me: Great!
    

    在gmail中,这看起来与上面完全相同,但对我而言,这现在是3个文件:

    • 文件1:

      Me, sent at 11:41:
      Hi, how are you?
      
    • 文件2:

      You, sent at 11:42:
      Good!
      
      Me, sent at 11:41:
      Hi how are you?
      
    • 文件3:

      Me, sent at 11:43:
      Great!
      
      You, sent at 11:42:
      Good!
      
      Me, sent at 11:41:
      Hi how are you?
      

    正如您所理解的,3个文件没有问题:我只丢弃文件1和2,只使用文件3.这正是我想要做的。但考虑到总共有大约30k文件,我非常希望自动化。

    遗憾的是,不可能通过文件名完成此操作,尽管可以部分完成。文件以其日期命名。例如:2011年1月2日的20110102。然而,因为一天有多个电子邮件对话,如果我按日期排序并且只保留最大的话,我会失去很多。

    我希望问题很清楚,你可以帮我解决这个问题。 我在Mac OSX 10.7上工作。我尝试过使用Applescript,但要么我的脚本不好,要么Applescript无法处理文件数量。 也许你以某种方式推荐软件或脚本?我对所有人开放,不熟悉编程。

    提前致谢!

1 个答案:

答案 0 :(得分:2)

由于您的任务基本上只是文本处理,因此您熟悉的任何语言(包括AppleScript,PHP,bash,C)都应该能够胜任。我想也许@ inTide将问题分解为谨慎的步骤是你需要做的事情,用你选择的语言一次构建一个部分。

选择您熟悉的语言并开始将代码编写到第一步并确保它按预期工作,然后展开,在每个点添加一些新功能并确保功能在继续之前工作。如果没有您编写的代码示例或更好地描述AppleScript如何为您失败,则很难提供其他建议。