Grep ব্যবহার করে নেতিবাচক মিলছে(মিলি লাইনে যা Foo থাকে না)




(2)

আমি এই কমান্ডের জন্য সিনট্যাক্সটি কাজ করার চেষ্টা করছি:

grep ! error_log | find /home/foo/public_html/ -mmin -60

অথবা

grep '[^error_log]' | find /home/baumerf/public_html/ -mmin -60

error_log নামে যাদের পরিবর্তিত হয়েছে তাদের সকল ফাইল দেখতে হবে।

আমি এখানে এটি সম্পর্কে পড়া করেছি , কিন্তু শুধুমাত্র একটি -regex প্যাটার্ন পাওয়া যায় নি।


আপনার ক্ষেত্রে, সম্ভবত আপনি grep ব্যবহার করতে চান না, বরং অনুসন্ধান কমান্ডের পরিবর্তে একটি নেতিবাচক ধারা যুক্ত করুন, যেমন

find /home/baumerf/public_html/ -mmin -60 -not -name error_log

যদি আপনি নামের মধ্যে ওয়াইল্ডকার্ডগুলি অন্তর্ভুক্ত করতে চান তবে আপনাকে সেগুলি থেকে পালাতে হবে, উদাহরণস্বরূপ ফাইলগুলিকে suffix সহ বাদ দিতে .log:

find /home/baumerf/public_html/ -mmin -60 -not -name \*.log

আপনি এই উদ্দেশ্যে awk ব্যবহার করতে পারেন, যেহেতু এটি আপনাকে আরও জটিল পরীক্ষাগুলি আরও পরিষ্কার ভাবে সম্পাদন করতে দেয়:

লাইন ধারণকারী foo না:

awk '!/foo/'

লাইন বা bar না ধারণকারী লাইন:

awk '!/foo/ && !/bar/'

লাইনগুলির মধ্যে neither foo বা bar ধারণকারী foo2 বা bar2 ধারণকারী রয়েছে:

awk '!/foo/ && !/bar/ && (/foo2/ || /bar2/)'

এবং তাই।