-1
下的文件我有以下命令:在Perl替換命令清空的Windows
perl -pi.bak -e "s/pattern//" $file_name
當我在perl腳本執行它,它清空文件(我看到.bak文件,它不是空的) 。當我在shell中執行它時,它可以工作。可能是什麼問題?
問題是在Windows下,它在Linux下正常工作。
編輯1: 我想這一個了,還清空:
sub replace_pattern_in_file
{
my ($file, $pattern, $replacement) = @_;
open my $in, "<", $file;
unlink $file;
open my $out, ">", $file;
while(my $line = <$in>)
{
$line =~ s/$pattern/$replacement/g;
print $out $line;
}
}
你的模式是什麼? – Sobrique
重新編輯1,這不適用於Windows,因爲它沒有匿名文件。 – ikegami