【发布时间】:2012-05-06 10:13:23
【问题描述】:
我有一个包含大约 800 个 html 文件的目录。我正在尝试搜索每个文件并返回标签之间的文本。然后我想用该文本创建一个目录并在那里移动(或复制)文件。当我想到这一点时,这似乎是一项非常容易的尝试,但即使确定我需要的模块,我也遇到了很多问题。我已经查看了 File::Find 和 glob,但我不确定如何在文件中使用 txt 的正则表达式(而不是文件名)来实现这一点。我基本上是 perl 的新手,所以任何和所有的帮助都会受到赞赏。提前致谢。
编辑 澄清一下:我要完成的工作:
读取目录 = ~/me/project/
对于 ~/me/project/ 找到所有文件 =~ /.html$/i
对于每个文件,在 html 中搜索 = div class="recip" id="objectTo">(.*) /div
为每个 (.*) IE john@doewww.com 或 John Doe 创建一个具有相同名称的目录
循环并移动每个具有 xxxxxxxx@xxxxx.com 或 John Doe 实例的文件到其对应的目录。
非常感谢您的帮助!
【问题讨论】:
-
代码应该如何确定移动或复制文件的名称?
-
通过标量。我最初的想法是我可以写一个正则表达式,比如 $html =~ m{(.*)} 。匹配会返回一段文本,类似于“From John Doe”。然后将创建一个名为“From John Doe”的文件夹。然后,与该 From 行匹配的所有文件都将移到那里。所以也许它实际上是一个数组?我有 800 个文件,其中包含大约 180 个独特的“发件人”值,我正在尝试捕获它们。
-
请编辑您的问题,以提供您希望用于确定移动或复制文件名的 HTML 的简要示例。代码应该如何找出“From”值?请记住,我们完全不熟悉您的问题,需要具体信息才能为您提供有用的建议。
标签: regex perl html-parsing