Như Phao-lô nói, bạn muốn đầu tiên tìm thấy các tập tin bạn muốn chỉnh sửa và sau đó chỉnh sửa chúng. Một thay thế cho việc sử dụng find là sử dụng GNU grep (mặc định trên Ubuntu), ví dụ:
grep -r -l from . | xargs -0 -n 1 sed -i -e 's/from/to/g'
Bạn cũng có thể sử dụng ack-grep (sudo apt-get install ack-grep hoặc truy cập http://petdance.com/ack/) là tốt, nếu bạn biết bạn chỉ muốn một loại tệp nhất định và muốn bỏ qua mọi thứ trong các thư mục kiểm soát phiên bản. ví dụ, nếu bạn chỉ muốn tập tin văn bản,
ack -l --print0 --text from | xargs -0 -n 1 sed -i -e 's/from/to/g'
# `from` here is an arbitrary commonly occurring keyword
Một thay thế cho việc sử dụng sed là sử dụng perl mà có thể xử lý nhiều tác phẩm cho mỗi lệnh, ví dụ:
grep -r -l from . | xargs perl -pi.bak -e 's/from/to/g'
Ở đây, perl được kể để chỉnh sửa trong nơi, tạo một tập tin .bak đầu tiên.
Bạn có thể kết hợp bất kỳ bên trái nào của ống với các cạnh bên phải, tùy thuộc vào tùy chọn của bạn.
Nguồn
2009-02-09 19:02:24
Chỉ cần thoát khỏi liên kết này ngay tại đây: http://stackoverflow.com/questions/102083/whats-the-best-tool-to-find-and-replace-regular-expressions-over-multiple-files –