আমি সমস্ত ম্যান পেজের ভিতরে হাইফেন যুক্ত একটি প্যাটার্ন অনুসন্ধান করার জন্য একটি আদেশ সন্ধান করার চেষ্টা করছি।
আমি 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)
^^^^^^^
ম্যান পৃষ্ঠাগুলির ভিতরে হাইফেন যুক্ত একটি প্যাটার্নটি অনুসন্ধান করা কি সম্ভব?