Bagaimana dengan ini, yang berhasil saya capai, sebagian, untuk posting ini.
Anda ingin menemukan beberapa file, misalkan log dengan nama yang berbeda tetapi sebuah pola (misalnya filename=logfile.DATE), di dalam beberapa direktori dengan pola (misalnya /logsapp1, /logsapp2). Setiap file memiliki pola yang Anda ingin grep (misalnya "init time"), dan Anda ingin memiliki "init time"masing-masing file, tetapi mengetahui file mana miliknya.
find ./logsapp* -name logfile* | xargs -I{} grep "init time" {} \dev\null | tee outputfilename.txt
Maka outputfilename.txtakan menjadi sesuatu seperti
./logsapp1/logfile.22102015: init time: 10ms
./logsapp1/logfile.21102015: init time: 15ms
./logsapp2/logfile.21102015: init time: 17ms
./logsapp2/logfile.22102015: init time: 11ms
Secara umum
find ./path_pattern/to_files* -name filename_pattern* | xargs -I{} grep "grep_pattern" {} \dev\null | tee outfilename.txt
Penjelasan:
find perintah akan mencari nama file berdasarkan pada pola
kemudian, pipa xargs -I{}akan mengarahkan findoutput ke{}
yang akan menjadi input untuk grep ""pattern" {}
Kemudian trik untuk membuat greptampilan nama file\dev\null
dan akhirnya, tulis output dalam file dengan tee outputfile.txt
Ini bekerja untuk saya di grepversi 9.0.5 build 1989.
grep --version