Tôi biết loại câu hỏi này đã được hỏi nhiều lần trước đây. Lý do tại sao tôi đến đây một lần nữa là tôi cảm thấy như tôi đã bỏ lỡ một cái gì đó đơn giản và cơ bản.Tìm kiếm nhiều dòng thay thế bằng Perl
Có thể thực hiện loại thói quen tìm kiếm thay thế này tốt hơn không. Ví dụ: không mở cùng một tệp hai lần. Ngoài ra tốc độ liên quan đến lời khuyên được chào đón.
Hãy lưu ý rằng điều này làm việc với các kết hợp nhiều dòng và thay thế các chuỗi nhiều dòng.
#!/bin/perl -w -0777
local $/ = undef;
open INFILE, $full_file_path or die "Could not open file. $!";
$string = <INFILE>;
close INFILE;
$string =~ s/START.*STOP/$replace_string/sm;
open OUTFILE, ">", $full_file_path or die "Could not open file. $!";
print OUTFILE ($string);
close OUTFILE;
Dường như bạn đang cố gắng chỉnh sửa tệp tại chỗ. Đó là, mở nó để đọc cũng như để viết. Đúng không? –
Có, chỉnh sửa tệp tại chỗ. Đó là trường hợp sử dụng phổ biến nhất đối với tôi. – user44556