হাইফেনেটেড বিকল্পগুলির জন্য কমান্ডের ম্যান পৃষ্ঠাটি গ্রেপ করুন


18

ধরুন আমি স্ক্রল -iনা করে স্যুইচ ইন grepকমান্ডের ব্যবহার জানতে চাই । আমার কেবল সেই কমান্ডের জন্য স্পেসিফিকেশনটি প্রয়োজন বা কমপক্ষে স্ক্রিন শোটি আগে দেখুন। তা কিভাবে? যেমন আপনি বলতে পারেন যে সাধারণভাবে কেবল নয় grep -i


উত্তর:


14

এই সহজ sedকমান্ড ব্যবহার করে দেখুন,

$ man grep | sed -n '/-i, --ignore-case/,+2p'
    -i, --ignore-case
              Ignore  case  distinctions  in  both  the  PATTERN and the input
              files.  (-i is specified by POSIX.)

ব্যাখ্যা:

sed -n '/-i, --ignore-case/,+2p'

        |<-Search pattern->|

এটি এমন রেখাটি মুদ্রণ করবে যা অনুসন্ধান প্যাটার্ন সহ 2 রেখার সাথে সন্ধান করবে যা অনুসন্ধান প্যাটার্ন লাইনের ঠিক নীচে উপস্থাপিত হবে।

অথবা

আপনি কেবল নীচের মত অনুসন্ধান প্যাটনে কেবল পতাকা দিতে পারেন।

avinash@avinash-Lenovo-IdeaPad-Z500:~$ man grep | sed -n '/ *i, -/,+3p'
       -i, --ignore-case
              Ignore  case  distinctions  in  both  the  PATTERN and the input
              files.  (-i is specified by POSIX.)

avinash@avinash-Lenovo-IdeaPad-Z500:~$ man grep | sed -n '/ *V, -/,+3p'
       -V, --version
              Print  the version number of grep to the standard output stream.
              This version number should be included in all bug  reports  (see
              below).
avinash@avinash-Lenovo-IdeaPad-Z500:~$ man grep | sed -n '/ *F, -/,+3p'
       -F, --fixed-strings
              Interpret PATTERN as a  list  of  fixed  strings,  separated  by
              newlines,  any  of  which is to be matched.  (-F is specified by
              POSIX.)
avinash@avinash-Lenovo-IdeaPad-Z500:~$ man grep | sed -n '/ *G, -/,+3p'
       -G, --basic-regexp
              Interpret PATTERN  as  a  basic  regular  expression  (BRE,  see
              below).  This is the default.

দ্রুত অ্যাক্সেসের জন্য আপনি এই স্ক্রিপ্টটি আপনার .bashrc( $HOME/.bashrc) এ যুক্ত করতে পারেন:

mangrep(){
    USAGE="mangrep <application> <switch>"
    if [[ "$#" -ne "2" ]]
      then
          echo "Usage: $USAGE"
      else
          man "$1" | sed -n "/ *"$2", -/,+3p"
    fi
}

23

টার্মিনালে নীচের কমান্ডটি টাইপ করুন:

man grep

তারপর, স্ল্যাশ চরিত্র টাইপ /, এবং আপনার অনুসন্ধান লিখুন, মত -i, দ্বারা অনুসরণ Enter। এটি অনুসন্ধান স্ট্রিংয়ের প্রথম সংঘটনটিতে কার্সারটি অবস্থান করবে। টিপে টিপে nকার্সারটি পরবর্তী ইভেন্টে সরানো হয়। টিপুন Shift+ nকার্সারটিকে পূর্বের উপস্থিতিতে সরিয়ে দেয়।


1
এটি সমস্ত পৃষ্ঠার সন্ধান -iকরবে man grepB তবে ওপি -iম্যান পৃষ্ঠায় পতাকা সম্পর্কিত সম্পর্কিত বর্ণনা চায় ।
অবিনাশ রাজ

3
অভিনাশরাজ না, এটি আপনাকে প্রতিটি ঘটনার মধ্য দিয়ে চক্রের অনুমতি দেবে -i। ওপিও ঠিক তাই চায়।
টেরডন

9

/@ জিরাার্ডেনগো দ্বারা প্রস্তাবিত অনুসারে সর্বাধিক সহজ পদ্ধতিটি অনুসন্ধান করা সত্ত্বেও, আপনি এর চেয়ে সহজ ব্যবহার করতে পারেন তার grepপরিবর্তে আপনিও ব্যবহার করতে পারেন sed:

$ man grep | grep -A 1 '^ *-i'
   -i, --ignore-case
          Ignore  case  distinctions  in  both  the  PATTERN and the input
          files.  (-i is specified by POSIX.)

এর -A Nঅর্থ "মিলের পরে এন লাইনগুলি প্রিন্ট করুন Av অবিনাশের sed পদ্ধতির অনুরূপ পরবর্তী কয়েকটি লাইন পাওয়ার জন্য একটি কৌশল ।


3

আপনি ভিতরে অনুসন্ধান ক্রিয়াকলাপটি ভিতরে ব্যবহার করতে পারেন man, কেবল "s"প্রেস করুন, আপনি যে কীটি খুঁজছেন তা টাইপ করুন (-আই আপনার ক্ষেত্রে) এবং ইন্ট্রো টিপুন।


আমি ম্যান গ্রেপ টাইপ করি তার পরে আমি এস টিপুন তার পরে আমি লগ ফাইলটি দেখি: তার পরে আমি টাইপ করলাম -i এবং ENTER তবে আমি বিবরণটি দেখতে পাচ্ছি না বা এমন কিছু আছে যা আমি জানি না
মোহাম্মদ রেজা রেজওয়ানি

3

অথবা, আপনি এই সাইটটিকে আপনার জন্য অনুসন্ধান করতে দিতে পারেন:

http://explainshell.com/explain?cmd=grep+-i

আপনাকে টার্মিনালটি ব্যবহার করে কিছুক্ষণের জন্য একটি ব্রাউজারে স্যুইচ করতে হবে, তবে এর কাছাকাছি উপায় রয়েছে


2

আমি সবচেয়ে কার্যকর পদ্ধতি সম্পর্কে সচেতন যেটি হ'ল ম্যান পৃষ্ঠাটি অনুসন্ধান করা -i(এই সাইটটি আমার কোডটি রেন্ডার করতে ব্যর্থ হয়েছে বলে মনে হচ্ছে I আমার অর্থ হ'ল <space><space><space>-i)। আপনি যে পতাকাটি সন্ধান করছেন তার পরে এটি 3 টি স্পেস (আপনার আরও কম / কম জায়গার প্রয়োজন হতে পারে)। এটি প্রায়শই আমার অভিজ্ঞতাতে কাজ করে এবং আপনি এটির কিছু পরিবর্তন করতে পারেন যেখানে এটি কাজ করে না।

ফ্ল্যাগগুলির আসল ডকুমেন্টেশনটি সাধারণত ইন্টেন্টেড থাকে বলে এটি কাজ করে। এটি অন্যান্য বিভাগে পতাকার অন্যান্য উল্লেখগুলি খুঁজে পাওয়া এড়িয়ে যায়, কারণ তাদের আগে সাধারণত একটি জায়গা থাকে।


1

সমস্ত উত্তরগুলির মাধ্যমে ঠিকঠাক হতে পারে তবে আমি মনে করি আপনি কেবলমাত্র কিছু নথির নথিতে ফোকাস করছেন। উদাহরণস্বরূপ, -iগ্রেপ ডকুমেন্টেশনের স্যুইচটি সন্ধান করতে :

info grep Invoking Command-line\ Options Matching\ Control

"গ্রেপ" সম্পর্কিত সমস্ত তথ্য, "ম্যাচিং কন্ট্রোল" -র জন্য নির্দিষ্ট "কমান্ড-লাইন বিকল্পগুলি" কীভাবে "অনুরোধ করবেন" সে সম্পর্কে আমি সমস্ত তথ্য খুঁজে পাব। দুঃখজনকভাবে এটা যে বেশী গভীরে যেতে না, কিন্তু এটা আছে -i, -y, --ignore-caseপ্রথমগুলি 25 লাইনে, কিছু যুক্তিসঙ্গত আপনি না যে সব আপনার উপায় নিচে স্ক্রল করতে।

এই সমাধানটি আরও নমনীয় এবং আপনাকে সমস্ত ইনফোপেজ সন্ধান করতে দেয়:

info --apropos=--ignore-case
"(coreutils)join invocation" -- --ignore-case <1>
"(coreutils)uniq invocation" -- --ignore-case <2>
"(coreutils)sort invocation" -- --ignore-case
"(gettext)msggrep Invocation" -- --ignore-case, ‘msggrep’ option
"(grep)Matching Control" -- --ignore-case

( এটি খুব সাধারণ হওয়ার --ignore-caseপরিবর্তে ব্যবহার -iকরতে হয়েছিল তবে আপনি কেবল কোনও ক্ষেত্রে তথ্য আউটপুট প্রক্রিয়া করতে পারেন)

এই ক্ষেত্রে, আপনার কাছে তথ্য পৃষ্ঠার নাম এবং সঠিক বিভাগ উভয়ই রয়েছে। আহ, প্রায় ভুলে গেছেন, আপনি tabতথ্য পৃষ্ঠাগুলির বেশিরভাগ অংশের মাধ্যমেও আপনার পথ যেতে পারেন।


1

আপনি কেবল প্রাসঙ্গিক অনুচ্ছেদটি বের করতে পার্ল এবং এর "অনুচ্ছেদ মোড" ব্যবহার করতে পারেন:

man grep | perl -00 -ne 'print if / -i/'

1

কোনও manপৃষ্ঠায় প্রদত্ত বিকল্পটি সন্ধান করার জন্য আমার পছন্দসই পদ্ধতিটি হ'ল একটি রেজেক্সের মতো ব্যবহার করা \s{2,}-option। হাতে থাকা প্রশ্নের জন্য, আপনি এটি করতে পারেন man grepএবং তারপরে পুনরায় টাইপ করুন:

/\s{3,}-i

অথবা

/ {3,}-i
 ^------------- space here

এটি -iকেবল তখনই মিলবে যখন তিন বা ততোধিক স্পেস অনুসরণ করবে ।


0

lessপেজর হিসাবে ডিফল্ট হিসাবে যেমন ব্যবহার করা হয় man, আপনি পৃষ্ঠাটি খোলার LESSসময় সন্ধানের জন্য কোনও প্যাটার্ন পাস করার জন্য পরিবেশ পরিবর্তনশীলটি ব্যবহার করতে পারেন less। এটি উদাহরণস্বরূপ করার অনুরূপ man lsএবং তারপরে বিকল্পটি অনুসন্ধান করে --allবা -aটাইপ করে /এবং পরে প্যাটার্নটি ইনপুট করে যেমন --allবা -a

এগুলি দ্বারা করা যেতে পারে:

LESS='+/--all' man ls

অথবা

LESS='+/-a' man ls

আপনি যা অনুসন্ধান করতে চান তা ইনপুট করুন /

সম্ভবত এটি দীর্ঘ বিকল্পগুলির (উদাহরণস্বরূপ --all) সংক্ষিপ্তগুলি (যেমন ) এর সাথে তুলনায় সবচেয়ে ভাল কাজ করে -a


0

যদি আপনি চাই প্রতি একটি প্যাটার্ন একটি হাইফেন দিয়ে শুরু এর জন্য ফলাফল, ব্যবহার প্যাটার্ন আগে আপনি উল্লেখ করুন। ব্যবহারের উদাহরণ :grepman <program>--man find

man find | grep -- -type

আপনি যদি আরও তথ্য চান, উদাহরণস্বরূপ পুরো বিভাগটি কোনও বিকল্প বর্ণনা করে, তবে চেষ্টা করে দেখুন sed:

$ man find | sed -n '/-mindepth/,/^$/p'
   -mindepth levels
          Do  not apply any tests or actions at levels less than levels (a
          non-negative integer).  -mindepth  1  means  process  all  files
          except the command line arguments.

সূত্র

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