Re: [問題] 讀取和寫入在同一個檔案
※ 引述《dipin (吃喝玩樂滿天下)》之銘言:
: 請問如果要用像是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然後再改檔名??
※ 引述《dipin (吃喝玩樂滿天下)》之銘言:
: 請問如果要用像是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然後再改檔名??
自幾爬了文
#!/usr/bin/perl
open (DATA, "+<$filename");
my @data = <DATA>;
seek (DATA,0,0);
foreach (@data) {
s/data1/data2/;
print DATA $_;
}
truncate (DATA, tell(DATA));
close (DATA);
_END_
這樣應該沒錯吧?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 69.226.223.54
→
03/24 14:10, , 1F
03/24 14:10, 1F
推
03/24 16:08, , 2F
03/24 16:08, 2F
討論串 (同標題文章)
Perl 近期熱門文章
PTT數位生活區 即時熱門文章