Với một sed GNU:
find . -type f -print0 | xargs -0 sed -i /KeyWord/d
Với một chiếc OSX sed:
find . -type f -print0 | xargs -0 sed -i '' /KeyWord/d
Lệnh đầu tiên findtìm thấy tất cả các tệp tiêu chuẩn (không phải thư mục hoặc đường ống, v.v.), in chúng cách nhau bởi \0(vì vậy tên tệp có thể chứa dấu cách, dòng mới, v.v.).
Lệnh thứ hai xargsđọc đầu ra của find, lấy một danh sách dựa trên dấu phân cách ( \0vì -0), gọi sed -i [...]các tham số được thêm vào từ danh sách ( sedsẽ được gọi nhiều lần nếu có nhiều tệp, vì độ dài tối đa của các tham số bị giới hạn trong từng lời cầu khẩn).
Các sedSửa lệnh tại chỗ ( -i).
Theo /KeyWord/dđó, nó sẽ xóa các dòng chứa biểu thức chính quy KeyWord.
Bạn nên học sedcách hiểu đúng cú pháp (đơn giản nhưng khác thường) và tham khảo các trang hướng dẫn phù hợp để biết thêm thông tin về các công cụ liên quan ở đây.
Và như tôi muốn quảng bá zsh, giải pháp với những khoảng trống mở rộng của nó:
sed -i /KeyWord/d **/*(.)