আমার উত্তরটি একটি 'পিএস' তালিকায় "ফুবার" অনুসন্ধানের জন্য সাধারণ উত্তরের একটি প্রকরণ। "-A" "পিএস" এর যুক্তি "অক্স" এর চেয়ে বেশি বহনযোগ্য, আমি বিশ্বাস করি, তবে এই পরিবর্তনটি উত্তরের সাথে অপ্রাসঙ্গিক। সাধারণ উত্তরটি এর মতো দেখাচ্ছে:
$ ps -A -ww | grep [f]oobar
পরিবর্তে আমি এই প্যাটার্নটি ব্যবহার করি:
$ ps -A -ww | grep [^]]foobar
মূল সুবিধাটি হ'ল এই নিদর্শনগুলির উপর ভিত্তি করে স্ক্রিপ্টগুলি লেখার পক্ষে সহজ কারণ আপনি যে ধরণের প্যাটার্ন সন্ধান করছেন তা সহ আপনি কেবল একটি স্ট্যাটিক স্ট্রিং "[^]]" সারণী করে তোলেন। আপনার স্ট্রিংয়ের প্রথম অক্ষরটি সরিয়ে ফেলার দরকার নেই তারপরে এটিকে বর্গাকার ধনুর্বন্ধনীগুলির মধ্যে সন্নিবেশ করানো হবে এবং তারপরে আবার এটি এক সাথে যুক্ত করতে হবে। শেলটিতে স্ক্রিপ্ট করার সময় আপনি যে ধাঁচের সন্ধানের জন্য খুঁজছিলেন তার সামনে কেবল "[^]]" স্টিক করা সহজ। বাশে স্ট্রিং স্লাইসিং একটি কুরুচিপূর্ণ জিনিস, তাই আমার প্রকরণটি এড়ানো যায়। এই প্রকরণটি বলছে যে প্যাটার্নগুলি শীর্ষস্থানীয় ডান-স্কোয়ার-বন্ধনী ব্যতীত প্যাটার্নগুলির সাথে মেলে সেগুলি প্রদর্শন করুন] যেহেতু একটি বর্গাকার বন্ধনী বাদ দেওয়ার জন্য অনুসন্ধান প্যাটার্নটি প্রকৃতপক্ষে বর্গাকার বন্ধনীটিকে প্যাটার্নে যুক্ত করে তাই এটি কখনই নিজের সাথে মেলে না।
সুতরাং আপনি নিম্নলিখিত হিসাবে একটি পোর্টেবল 'psgrep' কমান্ড লিখতে পারেন। এখানে আমি লিনাক্স, ওএস এক্স বিএসডি এবং অন্যদের মধ্যে পার্থক্যের জন্য কিছু ভাতা দিচ্ছি। এটি 'পিএস' থেকে কলামের শিরোনামগুলি যুক্ত করে, আরও বেশি কাস্টম 'পিএস' ফর্ম্যাট সরবরাহ করে যা আমার প্রয়োজনগুলি ভালভাবে স্যুট করে এবং অতিরিক্ত, অতিরিক্ত প্রশস্ত তালিকা প্রক্রিয়াকরণ প্রদর্শন করে যাতে কমান্ড-লাইনের আর্গুমেন্টগুলির কোনওটিই মিস না হয়। ভাল, বেশিরভাগই মিস হয় না। জাভা হচ্ছে জাভা, এটি প্রায়শই খারাপতম উপায়ে জিনিসগুলি করে, সুতরাং আপনি কিছু জাভা পরিষেবাগুলি সর্বাধিক অনুমোদিত আর্গুমেন্টগুলির প্রসারণ করতে পারবেন যা প্রক্রিয়া সারণীটি ট্র্যাক করে রাখবে। আমি বিশ্বাস করি এটি 1024 টি অক্ষর। কোনও প্রক্রিয়া শুরু করার অনুমতি দেওয়া কমান্ড-লোন দৈর্ঘ্য অনেক দীর্ঘ, তবে কার্নেল প্রক্রিয়া সারণী দৈর্ঘ্যে 1K এর বেশি কোনও কিছুর ট্র্যাক রাখতে বিরক্ত করে না। কমান্ডটি শুরু হয়ে গেলে কমান্ড-নাম এবং আর্গুমেন্ট তালিকা isn '
psgrep ()
{
pattern=[^]]${1};
case "$(uname -s)" in
Darwin)
ps -A -ww -o pid,ppid,nice,pri,pcpu,pmem,etime,user,wchan,stat,command | grep -i -e "^[[:space:]]*PID" -e ${pattern}
;;
Linux)
ps -A -ww -o pid,ppid,tid,nice,pri,pcpu,pmem,etime,user,wchan:20,stat,command | grep -i -e "^[[:space:]]*PID" -e ${pattern}
;;
*) # other UNIX flavors get a minimalist version.
ps -A -ww | grep -i -e ${pattern}
;;
esac
}
ps aux |grep
দিয়ে প্রতিস্থাপন করতে পারেন ।pgrep
pgrep -f