2013-10-16 122 views
-1

我正在从一个目录收集信息。之后,我只是过滤我想要的数据。这里是我的代码:perl - 收集信息并仅从收集的数据中选择一些信息

sub info { 
    my @files = `ls -l $path_to_dir`;     
    chomp @files;  
} 

阵列具有类似下面的所有信息:@files = ("D1", "K1", "ABC","FD_HTML")

现在,我只想$ path_to_dir里面的文件名开头的D1,K1,D0,K0,A0等。请问如何从存储在数组“@files”中的$ path_to_dir收集的信息中筛选出如D0,D1,K0,A0这样的数据。现在,从该阵列中,我只想将D0,K0,K1,A0等数据存储在不同的阵列中。怎么做?

+0

您需要使用代码选项重新格式化您的代码,因为它不清晰 – KeepCalmAndCarryOn

+2

根据您从未接受过的其他问题,或您提供的反馈非常类似的感觉,似乎您已被告知“ grep'。此外,您的代码将无法运行。 '我的@files = ls -l $ path_to_dir'似乎是某种perl伪代码。请修改您的问题以包含您尝试运行的代码。 – mikew

+0

@KeepCalmAndCarryOn:编辑现在好了吗?谢谢, – user2498830

回答

0

使用Perl opendir方法而不是shell命令。这样既安全又让你的代码更加便携。看看这个页面的例子...

http://perlmeme.org/faqs/file_io/directory_listing.html

要特别注意“查找结尾的文件...”部分了解如何处理匹配正则表达式的特定文件的例子。