Các giải pháp khác trộn cú pháp regex. Để sử dụng các mẫu perl / PCRE cho cả tìm kiếm và thay thế và chỉ xử lý các tệp phù hợp, điều này hoạt động khá tốt:
grep -rlZPi 'match1' | xargs -0r perl -pi -e 's/match2/replace/gi;'
trong đó match1
và match2
thường giống hệt nhau nhưng match1
có thể được đơn giản hóa để loại bỏ các tính năng nâng cao hơn chỉ liên quan đến sự thay thế, ví dụ: các nhóm bắt giữ.
Dịch: grep
đệ quy và liệt kê các tệp khớp với mẫu PCRE này, được phân tách bằng nul để bảo vệ bất kỳ ký tự đặc biệt nào trong tên tệp, sau đó chuyển các tên tệp xargs
đó đang chờ danh sách được phân tách bằng nul, nhưng sẽ không làm gì nếu không nhận được tên, và có được perl
các dòng thay thế nơi tìm thấy kết quả phù hợp.
Thêm công I
tắc grep
để bỏ qua các tệp nhị phân. Đối với kết hợp phân biệt chữ hoa chữ thường, thả công i
tắc từ grep
và i
cờ được gắn vào biểu thức thay thế, nhưng không phải là i
công tắc trên perl
chính nó.