grep -v "grep"
লাইন দ্বারা ইনপুট লাইন নেয় এবং কেবল যে লাইনে grep
উপস্থিত হয় না তা আউটপুট করে। ছাড়া -v
, এটি কেবল প্রদর্শিত রেখাগুলিতে আউটপুট grep
দেয় । দেখুন man grep
বিস্তারিত জানার জন্য।
যতদূর grep
ইউটিলিটি নিজেই সম্পর্কিত, এটি গুরুত্বহীন যে প্যাটার্নটি grep
আর্গুমেন্ট হিসাবে এটিতে চলেছে তার নামের সাথে একই। তবে বেশিরভাগ ক্ষেত্রে যেখানে grep -v grep
বাস্তবে উপস্থিত হয়, এটি কোনও কাকতালীয় ঘটনা নয়।
grep -v grep
(অথবা grep -v 'grep'
বা grep -v "grep"
) প্রায়ই একটি ডানদিকে প্রদর্শিত নল যার বাম পাশে একটি হল ps
কমান্ড। সম্ভবত এটিই আপনি এটি দেখেছেন। উদাহরণস্বরূপ, আমি হয়ত এমন প্রোগ্রামগুলি চালাচ্ছি যাঁর নাম, পাথ, বা কমান্ড-লাইন আর্গুমেন্টগুলি Xfce এর সাথে সম্পর্কিত পরামর্শ দেয়:
ek@Io:~$ ps x | grep xfce
2955 ? Ssl 0:10 xfce4-power-manager
2958 ? S 0:00 /usr/lib/x86_64-linux-gnu/xfce4/xfconf/xfconfd
31901 pts/1 S+ 0:00 grep --color=auto xfce
আমার grep
কমান্ডটি আউটপুটটিতে প্রদর্শিত হয়েছিল, তবে এটি আমি যা খুঁজছি তা নয়। আমি যে প্রক্রিয়াগুলি চালিয়ে যাচ্ছি তা পরীক্ষা করে দেখছি যেগুলি ইতিমধ্যে চলমান প্রক্রিয়াগুলির তথ্য অনুসন্ধান করছি, যা চলছে তা যাচাই করার জন্য আমার প্রচেষ্টার কারণে কেবল প্রক্রিয়াটি চলছে না।
এই বিভ্রান্তি দূর করার একটি সাধারণ উপায় হ'ল অন্য পাইপ যুক্ত করুন grep -v grep
:
ek@Io:~$ ps x | grep xfce | grep -v grep
2955 ? Ssl 0:10 xfce4-power-manager
2958 ? S 0:00 /usr/lib/x86_64-linux-gnu/xfce4/xfconf/xfconfd
grep
ছাড়া -F
একইরূপে হিসেবে তার প্যাটার্ন রেগুলার এক্সপ্রেশন একটি বদলে নির্দিষ্ট স্ট্রিং । সুতরাং অন্য পদ্ধতির হ'ল একটি নিয়মিত প্রকাশ যা সঠিকভাবে মেলে xfce
তবে ভিন্নভাবে লেখা হয় write উদাহরণ স্বরূপ:
ek@Io:~$ ps x | grep '[x]fce'
2955 ? Ssl 0:10 xfce4-power-manager
2958 ? S 0:00 /usr/lib/x86_64-linux-gnu/xfce4/xfconf/xfconfd
এটি কাজ করে কারণ [x]
একটি অক্ষর শ্রেণি যা অক্ষরের সাথে হুবহু মিলে x
।
এই জনপ্রিয় পদ্ধতির একটি অসুবিধা হ'ল তারা লাইনগুলি ফিল্টার করে ফেলবে যেগুলি কেবলমাত্র আপনি নিজেরাই চালিত কমান্ড grep
না থাকলেও ধারণ করে grep
। এগুলি এমনকি grep
কমান্ডও হতে পারে না - কেবল কমান্ড যার নাম, পাথ বা কমান্ড-লাইন যুক্তি রয়েছে grep
। সুতরাং, যেমন সের্গি কলডিয়াজনি বলেছেন , প্রায়শই সেই উপায়গুলির মধ্যে (বা আউটপুটটি পাইপিংয়ের সাথে জড়িত অন্য কোনও পদ্ধতির ps
) সত্যই আদর্শ নয় এবং যেমন নিক হার্টলি উল্লেখ করেছেন , অন্যান্য উপায় প্রায়শই ব্যবহার করে pgrep
। উদাহরণ স্বরূপ:
ek@Io:~$ pgrep -af xfce
2955 xfce4-power-manager
2958 /usr/lib/x86_64-linux-gnu/xfce4/xfconf/xfconfd
-a
দেখায় পূর্ণ কমান্ড লাইন। কেবলমাত্র প্রক্রিয়া আইডি নম্বর প্রদর্শন করতে এটি ছাড়ুন।
-f
সম্পূর্ণ কমান্ড লাইনে অনুসন্ধান করে । কেবল নাম অনুসন্ধান করতে এটি ছেড়ে দিন।
man grep
কমান্ডের জন্য রেফারেন্স ম্যানুয়াল পৃষ্ঠাটি পড়তে পারেন , বা নির্দিষ্ট কমান্ডের আরও তথ্যের জন্য (ইন। গ্রেপ) আপনি পারেনinfo grep
.... যেমন। আপনার সিস্টেমে ডকুমেন্টেশন রয়েছে যা প্রায়শই খুব কার্যকর।