作者dipin (吃喝玩樂滿天下)
看板perl
標題[問題] 讀取和寫入在同一個檔案
時間Sat Mar 24 11:54:43 2007
請問如果要用像是s/str1/str2/g 這樣的指令的話
可以讓作用在同一個檔案嗎?
像是
要把檔案中所有的4改成1111
print "please enter name of the file you want to modify:";
chomp($filename1=<>);
open (file1, $filename1) || die $!;
while (<file1>) {
s/4/1111/g; #取代
print file1 $_; #再印回去
}
close (file1);
#印出改後的檔案內容
open (file1, $filename1) ||die $!;
print while (<file1>);
close (file1);
這是錯的,請問要如果改呢?
有比較好的方法取代一個檔案裡的字串嗎?
還是一定要另外開一個檔案,然後把原本的unlink然後再改檔名??
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 69.226.235.186
→ LiloHuang:你得找找書籍 了解一下seek truncate 03/24 13:13
推 knep:你會喜歡 Tie::File 的.. XD 03/24 13:44
推 Andor:perl -pi -e 's/4/1111/g' filename 詳見perldoc perlrun 03/24 16:33