如何使用grep搜索数组中的字符串?

时间:2018-04-28 20:16:39

标签: perl grep

我有一个包含一些文件名的数组。我正在尝试grep匹配字符串的特定文件名。

@arr=qw(INS.INPUT01.S7779902 INS.INPUT01.S7779903 INS.INPUT01.S7779904);
$str = "7779902";

if (grep{$_=~ /$str/} @arr){
    print $_;
}

2 个答案:

答案 0 :(得分:2)

如果您想知道哪些元素匹配,则需要使用grep的返回值执行某些操作:

my @matched = grep { /$str/ } @arr;
for my $x (@matched) {
    print $x, "\n";
}

答案 1 :(得分:1)

您可能希望列表中的文件名匹配?

看起来像这样

my ($match) = grep /\Q$str/, @arr

print $match, "\n" if defined $match

这将显示第一个匹配名称。任何其他人都将被忽略