+ -
当前位置:首页 → 问答吧 → perl可以像shell一样用匹配符号打开多个文件吗?

perl可以像shell一样用匹配符号打开多个文件吗?

时间:2011-06-28

来源:互联网

RT

l可以像shell一样用匹配符号打开多个文件吗?

例如
查看test.* 文件中的sample
grep "sample"  test.*


在perl 中 可以这样用吗?

open (FILE," test.*") || die("open file failed");
foreach my $line (<FILE>)
{

如果匹配 sample则打印

}

作者: linfengfeiye   发布时间: 2011-06-28

@ARGV = <test.*>;

while (<>) {
    如果匹配 sample则打印
}

作者: soul20040103   发布时间: 2011-06-28

回复 soul20040103


    为什么是<>

    为什么是argv?

    我可以不用命令行参数?

    可否给一点通俗的写法。

作者: linfengfeiye   发布时间: 2011-06-28

本帖最后由 小perl 于 2011-06-28 11:35 编辑

@files=glob(test.*);
print foreach @files;

作者: 小perl   发布时间: 2011-06-28



QUOTE:
RT

l可以像shell一样用匹配符号打开多个文件吗?

例如
查看test.* 文件中的sample
grep "sample"   ...
linfengfeiye 发表于 2011-06-28 11:05




虽然是单一指令.... grep "sample" test.*

但test.1, test.2, test.xx, ...
也是一个一个开启关闭的...
foreach my $file (glob("test.*")){
  open FH,...;
  while(<FH>){
     if(m/sample/){
         ...;
     }
  }
  close FH;
}

作者: jason680   发布时间: 2011-06-28

回复 jason680


    看到这里,明白了。

    非常感谢!

作者: linfengfeiye   发布时间: 2011-06-28

perl -e "while(<>){print if /sample/}" test.*

这句你应该满意。

作者: soul20040103   发布时间: 2011-06-28