Nếu tôi hiểu bạn chính xác thì đây là những gì bạn muốn làm:
find . -name '*.py' -print0 | xargs -0 grep 'something' > output.txt
Findtất cả các tệp có phần mở rộng py, grepchỉ các hàng có chứa somethingvà lưu các hàng trong đó output.txt. Nếu tập tin chứa bất cứ điều gì nó sẽ được thay thế.
Chỉnh sửa: Sử dụng -exec:
find . -name '*.py' -exec grep 'something' {} \; > output.txt
Tôi đang kết hợp bình luận của Chris Downs ở đây. Lệnh trên sẽ dẫn đến grepviệc được thực thi nhiều lần khi findtìm thấy sự xuất hiện. Tuy nhiên, nếu bạn thay thế ;bằng a +, grepđược gọi bằng đầu ra từ findnối (đến một giới hạn nhất định). Xem câu hỏi Sử dụng dấu chấm phẩy (;) so với dấu cộng (+) với exec trong find để tìm hiểu thêm về chủ đề.
               
              
+thay vì\;, nó sẽ cải thiện đáng kể thời gian thực hiện (vì nó sẽ chống lại các đối số trước khi thực hiện cho đến khiARG_MAX).