এটি সম্পর্কে কীভাবে, যা আমি অংশ পোস্টে ধন্যবাদ অর্জন করতে পেরেছি।
আপনি বেশ কয়েকটি ফাইল সন্ধান করতে চান, বিভিন্ন নামের সাথে লগ বলতে পারি তবে একটি প্যাটার্ন (উদাহরণস্বরূপ 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
এটি grep
9.0.5 বিল্ড 1989 সংস্করণে আমার জন্য কাজ করেছে ।
grep --version