【发布时间】:2019-04-09 02:07:02
【问题描述】:
我有 text.csv 文件,其中包含 IP 地址和具有 IP 地址的组。我可以很容易地找到 IP 10.1.1.1 属于哪个单组。问题是我需要找到组(找到IP)也属于的所有组。假设可能有很多组。
我已尝试以下代码来查找 IP 所属的组,但我不知道如何在循环中查找其他组。让我们看一个文件 text.csv:
Group name,Group members
------------------------
Group1 ,Group2
Group2 ,Group3
Group3 ,10.1.1.1
Group4 ,10.1.1.1
Group5 ,Group2
到目前为止我的代码:
my $ip = "10.1.1.1";
$csv = Text::CSV->new({ sep_char => ',' });
open(DATA, "< :encoding(iso-8859-7)", "text.csv") or die "Could not open $!\n";
while (<DATA>) {
if ($csv->parse($_)) {
@column_all = $csv->fields();
$column_name = $column_all[0];
$column_group_member = $column_all[1];
if ($column_group_member =~ /$ip/) {
$object = $column_name;
print $column_name;
}
if ($column_group_member =~ /$objectH/) {
print $column_name;
}
}
}
这将只打印 Group3,因为它的 IP 为 10.1.1.1
结果应该是: Group3(因为它包含 IP 10.1.1.1) Group2(因为它包含 Group3) Group1(因为它包含 Group2)
【问题讨论】:
标签: perl