我常帶文件的任意一組在我的桌面,格式爲:是雪豹的工作Perl腳本不再工作在獅子
屏幕在23年8月10日拍攝2011-11-08 AM.png
屏幕在57年8月8日拍攝2011-11-08 AM.png
對它們運行一個Perl腳本,並將其重命名爲
SS-2011-11-08在57年8月8日,在23年8月10日AM.png
SS-2011-11-08 AM.png
這停止工作,沒有發生重命名。現在,我必須要改變它,我想它更改爲:
SS-2011.11.08.at.8.10.23.AM.png
SS-2011.11.08.at.8.08 .57.AM.png
- 替換 「屏幕截圖」 作爲確切的情況下,始終以 「SS」
- 更換所有
-
到.
- 更換所有空格
.
我知道它與貪婪有關,但我沒有寫這個,也不管我做了多少擺弄,我似乎無法得到它的工作。在我的生活中,我用了幾個小時的perl。我想我可以在php中做到這一點,但想了解如何將它保存在perl中,因爲它總是能夠調試。我查閱了regs格式規則,他們沒有申請。無論是Mac OS X Lion中的東西,還是雪豹都允許發生的事情不應該發生。
謝謝大家!
這是我到目前爲止有:
#!/usr/bin/perl -w
chdir("/Users/me/Desktop") or die;
my @files =();
print "after my \@files array\n";
print @files;
while (<*>) {
push @files, $_ if m!^Screen Shot (.*) at (.*)\.png!;
}
foreach my $f (@files) {
my $new = $f;
$new =~ s!^SS (.*) at (.*)\.png!ss-$1\_$2.png!;
print "$f -> $new\n";
rename ($f, $new) or die;
}
使用調試器('perl -d ...')並單步執行代碼來查找問題。 – mob
是否有任何錯誤消息?你能給我們一些樣本輸入嗎?考慮到樣本輸入,實際產出是多少?預期產出是多少? – 2011-11-08 17:08:35
編寫現代Perl,'嚴格使用'! – Quentin