2013-04-22 61 views
-1

我有文件actual.out.tmp,我想替換某些字符並將輸出發送到 文件actual.out。我嘗試下面的代碼:我想替換文件1中的某些字符,並希望將替換後的字符的輸出寫入文件2中,並將其替換爲Perl

open(ACTUAL, "$tmpDir/data/actual_out.tmp"); 
my $pattern=""; 
while(<ACTUAL>) 
{ 
$pattern .= $_; 
} 
close(ACTUAL); 
$pattern=~s/@[^[]*/@/g; 
$rc= systemTestSetup::execute("touch $tmpDir/data/actual_out"); 
open(ACTUAL1, ">$tmpDir/data/actual_out"); 
print ACTUAL1 ; 

close(ACTUAL1); 
sleep(10); 
+1

你有什麼試過?你知道這和'perl -pe's/pattern/substitute /' file2'一樣簡單嗎? – amon 2013-04-22 07:31:49

+0

open(ACTUAL,「$ tmpDir/data/actual_out.tmp」); \t my $ pattern =「」; \t while() \t {\t \t $ pattern。= $ _; $ pattern =〜s/@ [^ [] */@/g; print Actual; \t} \t \t close(ACTUAL); – 2013-04-22 07:34:27

+2

這不可讀。如果您需要添加到您的問題,請通過編輯添加到您的問題。 – ikegami 2013-04-22 07:35:20

回答

0

我相信行print ACTUAL1;應該是print ACTUAL1 $pattern,因爲這就是你做你的搜索和替換($_仍然有它的原始文件的最後一行,我想) 。

也可能有其他問題。

+0

感謝您的建議。它解決了。 – 2013-04-23 05:32:46