কেন ম্যান পেজগুলির বিভাগের শিরোনামগুলি সম্পূর্ণ গ্রেপযোগ্য নয়?


14

এটি এল ক্যাপ্টেন এবং সহকর্মীর হাই সিয়েরা, স্ট্যান্ডার্ড টার্মিনালে (ব্যাশ) পরীক্ষা করা হয়েছিল।

user@hostname ~ $ man ls | grep "BU"
BUGS
user@hostname ~ $ man ls | grep "BUG"
user@hostname ~ $ 
user@hostname ~ $ man ls | grep "IEEE"
     files in order to be compatible with the IEEE Std 1003.2 (``POSIX.2'')
     The ls utility conforms to IEEE Std 1003.1-2001 (``POSIX.1'').

স্পষ্ট করার জন্য: "BUGS" হ'ল (এবং অন্যান্য বিভিন্ন) ম্যানেজগুলির একটি বিভাগ শিরোনাম। বিভাগের শিরোনামগুলির জন্য, গ্রেপিং কেবল প্রথম 2 টি অক্ষরের জন্য কাজ করবে বলে মনে হয়; আমরা চেষ্টা করেছি এমন কয়েকটি আলাদা বিভাগ শিরোনাম জুড়ে এটি সামঞ্জস্যপূর্ণ। বাকি সামগ্রীর জন্য, grepপ্রত্যাশার মতো কাজ করছে বলে মনে হচ্ছে।

আমি একটি নন-বিএসডি স্বাদযুক্ত লিনাক্স বাক্সে (অ্যামাজন লিনাক্স) প্রবেশ করলাম এবং এটি একই আচরণ প্রদর্শিত হবে বলে মনে হয় না।

এখানে কি হচ্ছে?


আমি বিএসডি লোকটিকে ঘৃণা করার কারণ এটি। এটি পাঠ্যটিকে ফর্ম্যাট করে এবং পেজারটি চালিত করে এমনকি এর আউটপুটটি পাইপ হলেও। এবং আমার পেজারটি ভিম, তাই লিনাস আমি কখনও নিষেধ করি না man foo | grep bar, আমি একটি প্রতিক্রিয়াহীন পাইপলাইন পাই (এবং সম্ভবত বুট করার জন্য কোনও বিশৃঙ্খলা টার্মিনাল)। : / ম্যান্ডব ম্যান , যা আপনি সাধারণত লিনাক্সে দেখেন তা আরও বোধগম্য।
মুড়ু

unix.stackexchange.com/questions/371062 একটি ম্যাকওএস প্রশ্ন।
জেডিবিপি

উত্তর:


15

আপনি যদি কোনও ম্যান পৃষ্ঠার মধ্যে কাঁচা কোডগুলি দেখেন তবে কী ঘটছে তা দেখতে পারেন। এটি করার একটি উপায় হ'ল ম্যান পৃষ্ঠাটি কোনও ফাইলে রফতানি করা এবং এর সামগ্রীগুলি সরাসরি পরীক্ষা করা:

man ls > man.ls
nano man.ls

"বুগস" শব্দটি আসলে ফাইলে এইরকম দেখাচ্ছে:

B^HBU^HUG^HGS^HS

আপনি দেখতে পাবেন যে শিরোনামগুলিতে বিন্যাসের অক্ষর রয়েছে, তাই পুরো "BUGS" শব্দটি উপস্থিত নেই।


আপনি যদি ম্যানুয়াল পৃষ্ঠার প্লেটেক্সট সামগ্রীগুলি অ্যাক্সেস করতে চান তবে আপনি কমান্ডটি ব্যবহার করতে পারেন

man -P cat <thepage>

-Pবিকল্প অন্যান্য UNIX উপর পেজার সেট করে এবং catবিন্যাস তথ্য উপেক্ষা করা হবে, একটি প্লেইন আউটপুট প্রদান করে। যাইহোক, এটি ম্যাকোস-এ কাজ করছে বলে মনে হচ্ছে না, সুতরাং আউটপুটটির col -bপাইপলাইনে একটি ম্যানুয়াল পদক্ষেপ প্রয়োজন :

man ls | col -b | grep BUGS

2
ধন্যবাদ স্কট! কোনও ফাইলে পুনঃনির্দেশ করা এবং একটি পাঠ্য সম্পাদককে খোলার বিষয়টি আমার প্রথম চেষ্টা করা উচিত ছিল। সেই তথ্য এবং unix.stackexchange.com/a/15866 (অর্থাত্ man ls | col -b | grep "BUGS") থেকে প্রাপ্ত তথ্য ব্যবহার করে আমি যা চাই তা পেতে সক্ষম হয়েছি।
জোনাথন মের্কলিন

7
পবিত্র মোলি, সাহসী হ'ল পুরানো টিটিওয়াই এবং টাইপরাইটার যুগ, একটি চিঠি এবং ব্যাকস্পেস টাইপ করুন এবং আবার চিঠিটি টাইপ করুন, তারা জেনে নিবেন যে তারা পুরোপুরি লাইন পাবে না এবং আরও কালি জমা দেবে। nroffঅনুবাদ করার জন্য একটি কমান্ড থাকতে হবে যে আপনার যদি প্রয়োজন হয় grep - আপনি কীভাবে সঠিক কমান্ডটি দিয়ে পাস করার groffমাধ্যমে এটি প্রসারিত করে তা মনে করবেন man?
bmike

স্ক্রোল করতে @ ক্রল্টন +10 এবং +10। আমি এই বিশেষ বিড়ালটিকে কীভাবে চামড়া দেওয়ার কথা ভাবছিলাম না তার থেকেও এটি আরও মার্জিত।
bmike

@ ক্রোল্টান হুম্ম - আমার man -P cat ls | grep BUGSজন্য man ls | grep BUGS, দু'জন কিছুই ফিরিয়ে দেয় না, একইভাবে কাজ করে ।
স্কট

1
ম্যানুয়াল সিস্টেমগুলি যা জিএনইউ রফকে নিয়োগ দেয়, সেখানে অবশ্যই বিকল্প রয়েছে grottyযা এটি একে টিটিওয়াই -৩ or বা ইসিএমএ ৪৪৪ নিয়ন্ত্রণ সিকোয়েন্সগুলি নির্গমন থেকে বিরত রাখবে।
জেডিবিপি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.