【发布时间】:2016-07-18 13:48:32
【问题描述】:
所以我有一个 perl 模块,它使用 bash 命令来获取具有某些“表”名称的文件。在我的具体情况下,它正在寻找名称为“事件”的表,但我也需要它来处理所有名称。
目前,我的 perl 脚本中有以下代码来获取带有名称表的 MYI 文件,我不仅收到了event_*,还收到了event_extra_data_*。对于我的示例,我只需要我的数据库中存在的第二个表用于 event_。作为我的测试信息,我目前有,
event_1459161160_0
event_1459182760_0
event_extra_data_1459182745_0
event_extra_data_1459182760_0
它们是来自表“event”和 event_extra_data 的分区表,这是 $table 变量在下面看到的值。
无论如何,我的问题是,我如何将其限制为仅接收 event_1459182760_0.MYI 而不是当前接收的 event_extra_data_1459182760_0.MYI?
elsif ($sql =~ /\{LAST\}/i )
{
$cmd = 'ls -1 /var/lib/mysql/sfsnort/'.$table.'_*MYI | grep -v template | tail -n1 | cut -d"/" -f6 | cut -d"." -f1';
$value = `$cmd`;
print "Search Value: $value\n";
if ($value eq "")
{
$sql = ""; # same as with FIRST
}
else
{
$sql =~ s/\{LAST\}/$value/g;
}
}
【问题讨论】:
-
你有没有考虑过用 perl 做这一切,比如File::Find?