গ্রেপ-ভি "গ্রেপ" এর অর্থ এবং কী?


17

আমি ভাবছিলাম কি grep -v "grep"করে এবং এর অর্থ কী?


8
আপনি man grepকমান্ডের জন্য রেফারেন্স ম্যানুয়াল পৃষ্ঠাটি পড়তে পারেন , বা নির্দিষ্ট কমান্ডের আরও তথ্যের জন্য (ইন। গ্রেপ) আপনি পারেন info grep.... যেমন। আপনার সিস্টেমে ডকুমেন্টেশন রয়েছে যা প্রায়শই খুব কার্যকর।
guiverc

12
grep -v "grep"প্রক্রিয়াগুলি তালিকাভুক্ত করার সময় প্রায়শই গ্রেপ নিজেই ফিল্টার আউট ব্যবহার করতে ব্যবহৃত হয় এবং এতে সাধারণত 3 টি পাইপলাইন অন্তর্ভুক্ত থাকে যদিও এর মতো আরও ভাল পদ্ধতি রয়েছে pgrepযার ফলে খুব কম "নদীর গভীরতানির্ণয়" অনুমোদিত হয়। দেখুন unix.stackexchange.com/q/74185/85039
Sergiy Kolodyazhnyy

13
এটা করে। আমি আমার রুটকিট কল করছি grep
জোশুয়া

নিরাপত্তাহীনতার সাথে সম্পর্কিত কোনও ক্ষেত্রে সাধারণত ব্যবহৃত হয় যেমন আমি ps aux | grep fubar | grep -v grepকোথা fubarথেকে কিছু বিকাশ করছি, যা প্রতিক্রিয়া বন্ধ করে দিয়েছে এবং যার আইডি আমি খুঁজতে চাই তাই আমি এটি হত্যা করতে পারি। ধরুন তাদের মধ্যে দুটি আছে তাই killallঅনুপযুক্ত।
নিগেল 222

উত্তর:


69

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 সম্পূর্ণ কমান্ড লাইনে অনুসন্ধান করে । কেবল নাম অনুসন্ধান করতে এটি ছেড়ে দিন।

10
এটি pgrepঅন্য বিকল্পের জন্যও উল্লেখযোগ্য হতে পারেps | grep
ফান্ড মনিকার লসুইট

8

grep --help-vপতাকা আমাদের কী বলে :

-v, --invert-match        select non-matching lines

-vম্যাচটি ইনভার্টগুলি মুদ্রণ করতে আপনি পতাকা ব্যবহার করতে পারেন ; এটি কেবলমাত্র সেই লাইনের সাথে মেলে যা প্রদত্ত শব্দটি ধারণ করে না। উদাহরণস্বরূপ সমস্ত লাইন মুদ্রণ করুন যাতে শব্দ বারটি নেই:

$ grep -v bar /path/to/file

( আরও পড়ুন ... )

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.