Secara rekursif mencari teks tertentu di dalam file tertentu tetapi hanya di folder tertentu

1

Saya memiliki struktur folder bersarang yang berisi banyak folder dan file.

Bagaimana cara mencari di dalam file untuk pola misalnya "sampletext", tetapi hanya jika nama file cocok dengan pola (misalnya hanya mencari di dalam file dengan ekstensi .txt) dan akhirnya nama folder yang mengandung harus cocok dengan pola lain? (mis. "data").

Saya yakin saya bisa menulis skrip shell untuk melakukannya, tapi saya yakin ada satu kalimat pintar yang akan mengajari saya hal-hal baru!

Terima kasih sebelumnya

jon
sumber

Jawaban:

2

Karena Anda mengatakan Anda memiliki struktur folder bersarang, saya yakin *data*/*txttidak akan melakukan apa yang Anda butuhkan. saya menyarankan

find . –type d –name "*data*" –exec sh –c "grep sampletext /dev/null {}/*.txt" \;

Apakah /dev/nullada untuk memaksa grepuntuk menampilkan nama file bahkan ketika itu berjalan pada direktori yang hanya memiliki satu .txtfile di dalamnya.

Scott
sumber