亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区
Chinaunix
標(biāo)題:
如何使用 perl篩選出目錄中的文件并打開(kāi)
[打印本頁(yè)]
作者:
linuxnature
時(shí)間:
2013-07-10 21:49
標(biāo)題:
如何使用 perl篩選出目錄中的文件并打開(kāi)
比如目錄/opt/data下有abc_01_01.data, abc_01_02.data, abc_02_01.data, abc_02_03.data 這樣的文件,文件都是以abc_ 開(kāi)頭的, 第一個(gè)數(shù)字是文件的編號(hào),不同的編號(hào)的文件內(nèi)容格式不同,第二個(gè)數(shù)字是寫入的文件序號(hào),序號(hào)是不固定的,每一個(gè)編號(hào)對(duì)應(yīng)的最大的序號(hào)的文件才是要使用的, 也就是這里的abc_01_02.data,abc_02_03.data是有效的文件
那么請(qǐng)問(wèn)我如何才能定位到我想要的文件上,并且使用別的程序能夠打開(kāi)它. 這里比如說(shuō)是 linux下的cat吧
請(qǐng)幫忙寫出完整的,可執(zhí)行的perl程序,由于本人目前是perl的小白,還沒(méi)有能力通過(guò)一兩個(gè)提醒就能寫出來(lái). 所以麻煩大家了
注: 我只查到了使用find可以查找指定目錄的文件,但不能篩選出相應(yīng)的文件,也不能使用程序分別打開(kāi)這些文件.
這是我找到的代碼
use strict;
use File::Find;
my @path = '/opt/data';
sub wanted {
if ( -f $File::Find::name ) {
if ( $File::Find::name =~ /abc/ ) {
print "$File::Find::name\n";
}
}
}
find( \&wanted, @path );
作者:
grshrd49
時(shí)間:
2013-07-10 22:46
你可以使用正則來(lái)篩選查找到的文件,例如你篩選出所有編號(hào)01的文件你可以這樣寫 /_01_/
如果你想打開(kāi)篩選出的文件 你可以使用open FF,"文件名"; 就行了
作者:
linuxnature
時(shí)間:
2013-07-10 22:51
我是想篩選出 目錄下的所有的不同編號(hào)的文件,出現(xiàn)幾個(gè)編號(hào)要幾個(gè),而且這個(gè)是不固定的. 再有就是編號(hào)后面的序號(hào),只要最大的那個(gè)序號(hào)的文件
回復(fù)
2#
grshrd49
作者:
syncpk99
時(shí)間:
2013-07-11 08:08
perldoc -f glob
作者:
grshrd49
時(shí)間:
2013-07-11 09:57
回復(fù)
3#
linuxnature
這個(gè)假設(shè)你的文件已經(jīng)都在@files這個(gè)列表中;然后就可以輸出你需要的文件了
use strict;
my @files = ("abc_01_08.data","abc_01_4322.data","abc_02_444.data","abc_02_111.data");
my %file_hash;
for(@files){
if(/abc_(\d*)_(\d*).data/){
$file_hash{$1}{$2}=$_;
}
}
my $max;
my $need_file;
for my $k1 (keys %file_hash){
print "$k1\n";
$max = (keys %{$file_hash{$k1}})[0];
$need_file = $file_hash{$k1}{$max};
print "debug-$max\n";
for my $k2 (keys %{$file_hash{$k1}}){
if($max < $k2){
$max = $k2;
$need_file = $file_hash{$k1}{$k2};
}
print " $k2\n $file_hash{$k1}{$k2}\n";
}
print "need file -- $need_file\n";
}
復(fù)制代碼
作者:
linuxnature
時(shí)間:
2013-07-11 11:19
太感謝了, 我只需要把獲取的文件名賦給 $files就可以了 , 別的地方稍加修改應(yīng)該就能用了. 非常感謝大俠
回復(fù)
5#
grshrd49
歡迎光臨 Chinaunix (http://72891.cn/)
Powered by Discuz! X3.2