এটি সম্পর্কে কীভাবে, যা আমি অংশ পোস্টে ধন্যবাদ অর্জন করতে পেরেছি।
আপনি বেশ কয়েকটি ফাইল সন্ধান করতে চান, বিভিন্ন নামের সাথে লগ বলতে পারি তবে একটি প্যাটার্ন (উদাহরণস্বরূপ filename=logfile.DATE), বেশ কয়েকটি ডিরেক্টরিতে (উদাহরণস্বরূপ ) বিভিন্ন ডিরেক্টরিতে /logsapp1, /logsapp2। প্রতিটি ফাইলের একটি প্যাটার্ন রয়েছে যা আপনি গ্রেপ করতে চান (উদাহরণস্বরূপ "init time"), এবং আপনি "init time"প্রতিটি ফাইলের একটি রাখতে চান তবে এটি কোন ফাইলের সাথে সম্পর্কিত তা জেনে।
find ./logsapp* -name logfile* | xargs -I{} grep "init time" {} \dev\null | tee outputfilename.txt
তারপরে outputfilename.txtএমন কিছু হবে
./logsapp1/logfile.22102015: init time: 10ms
./logsapp1/logfile.21102015: init time: 15ms
./logsapp2/logfile.21102015: init time: 17ms
./logsapp2/logfile.22102015: init time: 11ms
সাধারণভাবে
find ./path_pattern/to_files* -name filename_pattern* | xargs -I{} grep "grep_pattern" {} \dev\null | tee outfilename.txt
ব্যাখ্যা:
find কমান্ডটি প্যাটার্নের ভিত্তিতে ফাইলের নামগুলি অনুসন্ধান করবে
তারপরে পাইপ আউটপুটটিকে ডায়রেক্ট xargs -I{}করবে willfind{}
যা ইনপুট হবে grep ""pattern" {}
তারপরে grepফাইলের নামগুলি প্রদর্শন করার কৌশল\dev\null
এবং শেষ পর্যন্ত, ফাইলের সাথে আউটপুট লিখুন tee outputfile.txt
এটি grep9.0.5 বিল্ড 1989 সংস্করণে আমার জন্য কাজ করেছে ।
grep --version