আমি grep
একটি সিসলোগ ফাইলের বিপরীতে চেক করতে রেজেক্স প্যাটার্নগুলির একটি তালিকা দিচ্ছি । তারা সাধারণত একটি আইপি ঠিকানা এবং লগ এন্ট্রি মিলছে;
grep "1\.2\.3\.4.*Has exploded" syslog.log
এটি কেবলমাত্র "1\.2\.3\.4.*Has exploded"
লুপের অংশটি যাচ্ছি তার মতো নিদর্শনগুলির একটি তালিকা , যাতে আমি উদাহরণস্বরূপ "-v" পাস করতে পারি না।
আমি উপরের বিপরীতটি করার চেষ্টা করে বিভ্রান্ত হয়েছি, একটি নির্দিষ্ট আইপি ঠিকানা এবং ত্রুটির সাথে একটি নয় লাইন মেলে "! 1.2.3.4। । মিলতে না পারার জন্য আমার অবশ্যই একটি আইপি অন্তর্ভুক্ত করতে সক্ষম হব
আমি স্ট্যাকওভারফ্লোরগুলিতে বিভিন্ন অনুরূপ পোস্ট দেখেছি তবে তারা রেজেক্স প্যাটার্নগুলি ব্যবহার করে যা আমার সাথে কাজ করার মতো মনে হয় না grep
। grep
দয়া করে কেউ কি একটি কাজের উদাহরণ প্রদান করতে পারেন ?
আপডেট: এটি স্ক্রিপ্টের মতো ঘটছে;
patterns[1]="1\.2\.3\.4.*Has exploded"
patterns[2]="5\.6\.7\.8.*Has died"
patterns[3]="\!9\.10\.11\.12.*Has exploded"
for i in {1..3}
do
grep "${patterns[$i]}" logfile.log
done
patterns[3]="\!9\.10\.11\.12.*Has exploded"
পরিবর্তন patterns[3]="(?<!9\.10\.11\.12).*Has exploded"
এবং grep "${patterns[$i]}" logfile.log
পরিবর্তনগুলি grep -P "${patterns[$i]}" logfile.log
ডিফল্টরূপে আরও মেটাচ্যাকার্টর ধরে নেয়, তাই পালানো কিছু লোকের সাথে অন্য মিলের এক্সপ্রেশন থেকে অপসারণের প্রয়োজন হতে পারে।