Tôi đã cố gắng mã một kịch bản Perl để thay thế một số văn bản trên tất cả các tệp nguồn của dự án của tôi. Tôi cần một cái gì đó như:Có cách nào đơn giản để thay thế văn bản tệp hàng loạt tại chỗ không?
perl -p -i.bak -e "s/thisgoesout/thisgoesin/gi" *.{cs,aspx,ascx}
Nhưng đó phân tích tất cả các tập tin của một thư mục đệ quy.
Tôi chỉ mới bắt đầu một kịch bản:
use File::Find::Rule;
use strict;
my @files = (File::Find::Rule->file()->name('*.cs','*.aspx','*.ascx')->in('.'));
foreach my $f (@files){
if ($f =~ s/thisgoesout/thisgoesin/gi) {
# In-place file editing, or something like that
}
}
Nhưng bây giờ tôi đang mắc kẹt. Có một cách đơn giản để chỉnh sửa tất cả các tập tin tại chỗ bằng cách sử dụng Perl?
Xin lưu ý rằng tôi không cần giữ bản sao của mọi tệp đã sửa đổi; Tôi có 'em tất cả subversioned =)
Cập nhật: Tôi cố gắng này trên Cygwin,
perl -p -i.bak -e "s/thisgoesout/thisgoesin/gi" {*,*/*,*/*/*}.{cs,aspx,ascx
Nhưng có vẻ như danh sách đối số của tôi bùng nổ với kích thước tối đa cho phép. Trong thực tế, tôi nhận được lỗi rất lạ trên Cygwin ...
Bạn có thể lưu ý rằng bạn đang chạy Windows. –