[問題] 讀取和寫入在同一個檔案

看板Perl作者 (吃喝玩樂滿天下)時間18年前 (2007/03/24 11:54), 編輯推噓2(201)
留言3則, 3人參與, 最新討論串1/2 (看更多)
請問如果要用像是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

03/24 13:13, , 1F
你得找找書籍 了解一下seek truncate
03/24 13:13, 1F

03/24 13:44, , 2F
你會喜歡 Tie::File 的.. XD
03/24 13:44, 2F

03/24 16:33, , 3F
perl -pi -e 's/4/1111/g' filename 詳見perldoc perlrun
03/24 16:33, 3F
文章代碼(AID): #161A44Nq (Perl)
文章代碼(AID): #161A44Nq (Perl)