Jika saya memahami Anda dengan benar, inilah yang ingin Anda lakukan:
find . -name '*.py' -print0 | xargs -0 grep 'something' > output.txt
Findsemua file dengan ekstensi py, grephanya baris yang berisi somethingdan menyimpan baris output.txt. Jika file berisi apa pun itu akan diganti.
Edit: Menggunakan -exec:
find . -name '*.py' -exec grep 'something' {} \; > output.txt
Saya memasukkan komentar Chris Downs di sini. Perintah di atas akan menghasilkan grepeksekusi sebanyak yang findditemukan. Namun, jika Anda mengganti ;dengan a +, grepdipanggil dengan output dari finddigabungkan (hingga batas tertentu). Lihat pertanyaan Menggunakan titik koma (;) vs plus (+) dengan exec in find untuk informasi lebih lanjut tentang subjek.
+alih-alih\;, itu akan meningkatkan waktu eksekusi secara signifikan (karena akan menggabungkan argumen sebelum eksekusi sampaiARG_MAX).