সুতরাং কোনও ফাইল খুলুন cat
এবং তারপরে grep
ম্যাচিং লাইনগুলি ব্যবহার করে কেবলমাত্র আমার কাছে পৌঁছে যায় যখন আমি নির্দিষ্ট লগ সেটটির সাথে কাজ করছি যা আমি কাজ করছি। প্যাটার্নে লাইনগুলি মিলানোর জন্য এটির একটি উপায় প্রয়োজন তবে কেবল ম্যাচের পরে লাইনের অংশটি ফিরিয়ে আনতে হবে। ম্যাচের আগের এবং পরে অংশটি ধারাবাহিকভাবে পরিবর্তিত হবে। আমি sed
বা ব্যবহার করে খেলেছি awk
, তবে ম্যাচের আগে অংশটি মুছে ফেলার জন্য কীভাবে লাইনটি ফিল্টার করতে হবে তা বুঝতে সক্ষম হয়েছি বা ম্যাচের পরে অংশটি ফিরে পাবে, তা হয় কাজ করবে। এটি এমন একটি লাইনের উদাহরণ যা আমাকে ফিল্টার করতে হবে:
2011-11-07T05:37:43-08:00 <0.4> isi-udb5-ash4-1(id1) /boot/kernel.amd64/kernel: [gmp_info.c:1758](pid 40370="kt: gmp-drive-updat")(tid=100872) new group: <15,1773>: { 1:0-25,27-34,37-38, 2:0-33,35-36, 3:0-35, 4:0-9,11-14,16-32,34-38, 5:0-35, 6:0-15,17-36, 7:0-16,18-36, 8:0-14,16-32,34-36, 9:0-10,12-36, 10-11:0-35, 12:0-5,7-30,32-35, 13-19:0-35, 20:0,2-35, down: 8:15, soft_failed: 1:27, 8:15, stalled: 12:6,31, 20:1 }
আমার যে অংশটি প্রয়োজন তা হ'ল "স্থবির" পরে after
এর পিছনের পটভূমিটি হ'ল আমি জানতে পারি যে কতগুলি ঘন ঘন স্টল থাকে:
cat messages | grep stalled | wc -l
আমাকে যা করতে হবে তা খুঁজে বের করতে হবে যে কোনও নির্দিষ্ট নোড কতবার স্থবির হয়েছে ("স্তব্ধ" হওয়ার পরে প্রতিটি কোলনের আগে অংশ দ্বারা নির্দেশিত। কোনও স্টল নেই, যা আমাকে সাহায্য করে না I আমাকে কেবল স্থির অংশটি ফিল্টার করতে হবে যাতে আমি স্থির হয়ে যাওয়া লোকগুলির মধ্যে একটি নির্দিষ্ট নোডের জন্য গ্রেপ করতে পারি।
সমস্ত অভিপ্রায় এবং উদ্দেশ্যগুলির জন্য, এটি স্ট্যান্ডার্ড জিএনইউ কোর ব্যবহারের সাথে একটি ফ্রিবিএসডি সিস্টেম তবে সহায়তা করার জন্য আমি অতিরিক্ত কোনও কিছুই ইনস্টল করতে পারি না।
sed
সমাধানটি নিন এবং হোয়াইটস্পেসের বিশেষ ব্যবহার করবেন না।