ম্যান পেজের ভিতরে হাইফেন যুক্ত একটি প্যাটার্ন কীভাবে সন্ধান করবেন?


11

আমি সমস্ত ম্যান পেজের ভিতরে হাইফেন যুক্ত একটি প্যাটার্ন অনুসন্ধান করার জন্য একটি আদেশ সন্ধান করার চেষ্টা করছি।

আমি man manএই 3 টি অপশনটি দেখেছি এবং খুঁজে পেয়েছি:

-K, --global-apropos

সমস্ত ম্যানুয়াল পৃষ্ঠায় পাঠ্যের জন্য অনুসন্ধান করুন। এটি একটি নিষ্ঠুর-শক্তি অনুসন্ধান এবং সম্ভবত কিছু সময় লাগবে; আপনি যদি এটি করতে পারেন তবে আপনাকে অনুসন্ধান করা দরকার পৃষ্ঠাগুলির সংখ্যা হ্রাস করার জন্য একটি বিভাগ নির্দিষ্ট করা উচিত। অনুসন্ধানের পদগুলি সরল স্ট্রিং (ডিফল্ট), অথবা --regexবিকল্পটি ব্যবহার করা হলে নিয়মিত প্রকাশ হতে পারে ।

-w, --where, --path,--location

আসলে ম্যানুয়াল পৃষ্ঠাগুলি প্রদর্শন করবেন না, তবে উত্স এনআরফ ফাইলগুলির অবস্থান (গুলি) মুদ্রণ করবেন যা ফর্ম্যাট হবে।

-S list, -s list,t--sections=list

তালিকাটি হ'ল একটি কোলন- বা কমা-বিচ্ছিন্ন তালিকা অনুসন্ধানের জন্য নির্দিষ্ট ম্যানুয়াল বিভাগগুলির তালিকা। এই বিকল্পটি $MANSECTপরিবেশের পরিবর্তনশীলকে ওভাররাইড করে । ( -sবানানটি সিস্টেম ভি এর সাথে সামঞ্জস্যের জন্য)

আমি সেই প্যাটার্নটি অনুসন্ধানের জন্য তাদের একত্রিত করার চেষ্টা করেছি mark-modified-linesযা এতে বর্ণিত একটি পঠন বিকল্প রয়েছে man bash:

$ man -s1 -Kw mark-modified-lines

তবে এটি কোনও পৃষ্ঠা খুঁজে পায় না:

No manual entry for mark-modified-lines

এবং কমান্ড কোড সহ প্রস্থান করে 16
আমি ভেবেছিলাম সম্ভবত কমান্ডের বাক্য গঠনটি ভুল ছিল, তবে এটি এমনটি মনে হচ্ছে না, যেহেতু এই কমান্ডটি সঠিকভাবে আমার সিস্টেমে 5 টি পৃষ্ঠা পৃষ্ঠা খুঁজে পেয়েছে যাতে এই শব্দটি রয়েছে guitar:

$ man -s1 -Kw guitar

  /usr/share/man/man1/ffmpeg-all.1.gz
  /usr/share/man/man1/ffserver-all.1.gz
  /usr/share/man/man1/ffplay-all.1.gz
  /usr/share/man/man1/ffmpeg-filters.1.gz
  /usr/share/man/man1/ffprobe-all.1.gz

আমি ভেবেছিলাম সম্ভবত শব্দটির হাইফেনগুলি একটি সমস্যা তৈরি করেছে। ইন man bash, আমি --regexনীচে বর্ণিত যা বিকল্পটি খুঁজে পেয়েছি :

--regex

নিয়মিত প্রকাশ হিসাবে প্রতিটি পৃষ্ঠার যুক্তির সাথে মিল রেখে তাদের নাম বা বর্ণনার যে কোনও অংশের সাথে সমস্ত পৃষ্ঠাগুলি দেখান apropos(1)। যেহেতু নিয়মিত অভিব্যক্তি অনুসন্ধান করার সময় কোনও "সেরা" পৃষ্ঠা বাছাই করার কোনও যুক্তিসঙ্গত উপায় নেই তাই এই বিকল্পটি বোঝায় -a

আমি এই বিকল্পটি ব্যবহার করার চেষ্টা করেছি এবং mark-modified-linesরেগেক্সের সাথে শব্দটি প্রতিস্থাপন করার চেষ্টা করেছি mark.modified.lines, যেখানে হাইফেনগুলি মেটাচার্যাক্টারের সাথে প্রতিস্থাপন করা হয় .যা কোনও চরিত্রের সাথে মিলে যায়:

$ man -s1 -Kw --regex 'mark.modified.lines'

এটি এখনও কোনও পৃষ্ঠা মুদ্রণ করে না, যদিও আমি জানি যে পাঠ্যটি bashম্যান পৃষ্ঠাতে লেখা আছে ।

.এই কমান্ডটি থেকে রেজেক্সে মেটাচ্যারেক্টার প্রত্যাশা অনুযায়ী পার্স করা হয়েছে বলে মনে হচ্ছে:

$ man -s1 -Kw --regex 'mark.mo'

ছাপে:

  /usr/share/man/man1/x11perfcomp.1.gz
  /usr/share/man/man1/xditview.1.gz

এবং এই 2 টি ম্যানাপেজ ( x11perfcomp, xditview) উভয়ই রেজেক্সের সাথে মিলেছে mark.mo। আরও নির্দিষ্টভাবে, man x11perfcompএই লাইনটি অন্তর্ভুক্ত করে:

Mark Moraes wrote the original scripts to compare servers.
^^^^^^^

এবং man xditviewএই লাইন রয়েছে:

    Mark Moraes (University of Toronto)
    ^^^^^^^

তবে man -s1 -Kw --regex 'mark.mo'বাশ ম্যান পৃষ্ঠাটি মুদ্রণ করে না:

/usr/share/man/man1/bash.1.gz

যদিও আমি এটি প্রত্যাশা করেছিলাম, যেহেতু এটিতে এই লাইনটি রয়েছে:

mark-modified-lines (Off)
^^^^^^^

ম্যান পৃষ্ঠাগুলির ভিতরে হাইফেন যুক্ত একটি প্যাটার্নটি অনুসন্ধান করা কি সম্ভব?

উত্তর:


15

man -Kম্যানুয়াল পৃষ্ঠাগুলির উত্স কোড অনুসন্ধান করে, তাদের রেন্ডার করা ফর্মটি নয় (প্রদর্শিত হিসাবে man)। হাইফেনগুলি এনকোড করা আছে \-, সুতরাং আপনার এটির জন্য অনুসন্ধান করতে হবে:

man -s1 -Kw 'mark\-mo'

হ্যাঁ, এটি বরং অস্পষ্ট। Man পৃষ্ঠা উল্লেখ, বর্ণনায় বিকল্প, যেman-K

নোট করুন যে এটি ম্যানুয়াল পৃষ্ঠাগুলির উত্স অনুসন্ধান করে , রেন্ডার করা পাঠ্য নয়, এবং সোর্স ফাইলগুলিতে মন্তব্যের মতো বিষয়গুলির কারণে মিথ্যা ইতিবাচক বিষয়গুলি অন্তর্ভুক্ত করতে পারে। রেন্ডার করা পাঠ্য অনুসন্ধান করা অনেক ধীর হবে be

তবে এটি সঠিকভাবে ব্যবহার করার জন্য আপনি যে পাঠ্যের সন্ধান করছেন সেটির উত্স উপস্থাপনা জেনে নেওয়া জড়িত।


1
অস্পষ্ট? হ্যাঁ. এছাড়াও, এটি একটি বাগ।
kubanczyk

@ কুবাঞ্জাইক ভাল, এটি অনুমানের সাথে মেলে তবে হ্যাঁ, আমি সম্মত হই যে চশমাটি বগি ;-)।
স্টিফেন কিট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.