我有一个包含一些文件名的数组。我正在尝试grep匹配字符串的特定文件名。
@arr=qw(INS.INPUT01.S7779902 INS.INPUT01.S7779903 INS.INPUT01.S7779904);
$str = "7779902";
if (grep{$_=~ /$str/} @arr){
print $_;
}
答案 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
这将显示第一个匹配名称。任何其他人都将被忽略