আমার উত্তরটি ps
তালিকার "ফুবার" অনুসন্ধানের জন্য সাধারণ উত্তরের একটি প্রকরণ । আমার যুক্তিটির "-A" "ps"
চেয়ে যুক্তি আরও বহনযোগ্য "aux"
, তবে এই পরিবর্তনটি উত্তরের সাথে অপ্রাসঙ্গিক। সাধারণ উত্তরটি এর মতো দেখাচ্ছে:
$ ps -A -ww | grep [f]oobar
পরিবর্তে আমি এই প্যাটার্নটি ব্যবহার করি:
$ ps -A -ww | grep [^]]foobar
মূল সুবিধাটি হ'ল এই নিদর্শনগুলির উপর ভিত্তি করে স্ক্রিপ্টগুলি লেখার পক্ষে সহজ কারণ আপনি যেই প্যাটার্নটি সন্ধান করছেন তার সাথে আপনি কেবল একটি স্ট্যাটিক স্ট্রিংকে সম্মতিযুক্ত করেন [^]]
। আপনার স্ট্রিংয়ের প্রথম অক্ষরটি সরিয়ে ফেলার দরকার নেই তারপরে এটিকে বর্গাকার ধনুর্বন্ধনীগুলির মধ্যে সন্নিবেশ করানো হবে এবং তারপরে আবার এটি এক সাথে যুক্ত করতে হবে। শেলটিতে স্ক্রিপ্ট করার সময় আপনি [^]]
যে প্যাটার্নটির জন্য সন্ধানী ছিলেন তার সামনে কেবল আঁকানো সহজ। বাশে স্ট্রিং স্লাইসিং একটি কুরুচিপূর্ণ জিনিস, তাই আমার প্রকরণটি এড়ানো যায়। এই প্রকরণটি বলছে যে প্যাটার্নগুলি শীর্ষস্থানীয় ডান-স্কোয়ার-বন্ধনী ব্যতীত প্যাটার্নগুলির সাথে মেলে সেগুলি প্রদর্শন করুন] যেহেতু একটি বর্গাকার বন্ধনী বাদ দেওয়ার জন্য অনুসন্ধান প্যাটার্নটি প্রকৃতপক্ষে বর্গাকার বন্ধনীটিকে প্যাটার্নে যুক্ত করে তাই এটি কখনই নিজের সাথে মেলে না।
সুতরাং আপনি psgrep
নিম্নলিখিত হিসাবে একটি পোর্টেবল কমান্ড লিখতে পারে । এখানে আমি লিনাক্স, ওএস এক্স বিএসডি এবং অন্যদের মধ্যে পার্থক্যের জন্য কিছু ভাতা দিচ্ছি। এটি কলামের শিরোনামগুলি যোগ করে ps
, আরও কাস্টম সরবরাহ করেps
ফর্ম্যাট যা আমার প্রয়োজন ভাল বেতার জন্য উপযুক্ত, এবং অতিরিক্ত, অতিরিক্ত প্রশস্ত তালিকা প্রক্রিয়াকরণ প্রদর্শন করে যাতে কমান্ড-লাইন আর্গুমেন্টগুলির কোনওটিই মিস না হয়। ভাল, বেশিরভাগই মিস হয় না। জাভা হচ্ছে জাভা, এটি প্রায়শই খারাপতম উপায়ে জিনিসগুলি করে, সুতরাং আপনি কিছু জাভা পরিষেবাগুলি সর্বাধিক অনুমোদিত আর্গুমেন্টগুলির প্রসারণ করতে পারবেন যা প্রক্রিয়া সারণীটি ট্র্যাক করে রাখবে। আমি বিশ্বাস করি এটি 1024 টি অক্ষর। কোনও প্রক্রিয়া শুরু করার অনুমতি দেওয়া কমান্ড-লোন দৈর্ঘ্য অনেক দীর্ঘ, তবে কার্নেল প্রক্রিয়া সারণী দৈর্ঘ্যে 1K এর বেশি কোনও কিছুর ট্র্যাক রাখতে বিরক্ত করে না। কমান্ডটি শুরু হয়ে গেলে কমান্ড-নাম এবং যুক্তির তালিকার বিপরীতে প্রয়োজন হয় না, তাই প্রক্রিয়া সারণীতে কী সংরক্ষণ করা হয় তা কেবল তথ্যগত।
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
}
grep --colour
।