যদি আপনি | sed -n lসেই tailকমান্ডটিতে কোনও মুদ্রণযোগ্য অক্ষর প্রদর্শন করতে যোগ করেন তবে আপনি সম্ভবত এরকম কিছু দেখতে পাবেন:
N\bNA\bAM\bME\bE
অর্থাৎ প্রতিটি চরিত্র Xব্যাকস্পেস হিসাবে লেখা X। আধুনিক টার্মিনালগুলিতে, চরিত্রটি নিজের উপর লেখা হয় (ব্যাকস্পেস ওরফে বিএস ওরফে \bওরফে হিসাবে^H যেমন একটি চরিত্র যা কার্সারকে একটি কলামকে বাম দিকে নিয়ে যায়) কোনও পার্থক্য ছাড়াই। তবে প্রাচীন টেলি-লেখকগুলিতে, দ্বিগুণ কালি পাওয়ার সাথে সাথে চরিত্রটি সাহসী দেখা দেয়।
তবুও, পেজাররা সাহসী বোঝার জন্য সেই বিন্যাসটিকে পছন্দ করে more/ পছন্দ করে lessতাই এটি এখনওroff বোল্ড টেক্সট আউটপুট দেয়।
কিছু লোক বাস্তবায়ন roffএমনভাবে কল করবে যে সেই ক্রমগুলি ব্যবহার করা হয়নি (বা অভ্যন্তরীণভাবে প্রয়োগের col -b -p -xক্ষেত্রে তাদের মতো ফালা ফলের জন্য কল করুন man-db( MAN_KEEP_FORMATTINGপরিবেশের পরিবর্তনশীল সেট না করা থাকলে)) এবং আউটপুট সনাক্ত করার সময় কোনও পেজারকে অনুরোধ করবেন না একটি টার্মিনাল যাচ্ছে না (তাইman bash | grep NAME সেখানে কাজ করবে) তবে আপনার নয়।
আপনি col -bএই সিকোয়েন্সগুলি সরিয়ে ফেলতে ব্যবহার করতে পারেন ( আন্ডারলাইনের পাশাপাশি অন্যান্য ধরণের ( _BS X) রয়েছে)।
জিএনইউ roff(যেমন জিএনইউ বা ফ্রিবিএসডি) ব্যবহার করে এমন সিস্টেমে , -c -b -uবিকল্পগুলি পাস হয়েছে কিনা তা নিশ্চিত করে আপনি প্রথম স্থানটিতে এই সিকোয়েন্সগুলি এড়াতে পারবেন grotty, উদাহরণস্বরূপ -P-cbuবিকল্পগুলি পাস হয়েছে কিনা তা নিশ্চিত করে groff।
উদাহরণস্বরূপ একটি র্যাপার স্ক্রিপ্ট তৈরি করে যার মধ্যে groffরয়েছে:
#! /bin/sh -
exec /usr/bin/groff -P-cbu "$@"
আপনি / usr / bin / groff এর আগে রেখেছেন $PATH।
ম্যাকোস ' man(এছাড়াও জিএনইউ ব্যবহার করে roff) এর সাহায্যে আপনি এগুলি তৈরি করতে পারেন man-no-overstrike.conf:
NROFF /usr/bin/groff -mandoc -Tutf8 -P-cbu
এবং কল করুন man:
man -C man-no-overstrike.conf bash | grep NAME
তবুও জিএনইউ দিয়ে roff, যদি আপনি GROFF_SGRপরিবেশের পরিবর্তনশীল সেট করেন (বা GROFF_NO_SGRসংকলনের সময় ডিফল্টগুলি কীভাবে নির্ধারণ করা হয়েছে তার উপর ভিত্তি করে ভেরিয়েবলটি সেট না করে ), তবে grotty(যতক্ষণ না এটি -cবিকল্পটি পাস না করা হয় ) এর পরিবর্তে এএনএসআই এসজিআর টার্মিনাল এস্কেপ সিকোয়েন্সগুলি ব্যবহার করবে চরিত্র বৈশিষ্ট্যের জন্য এই বিএস কৌশলগুলি। অপশন lessসহ ডাকা হলে তাদের বুঝতে -R।
FreeBSD 'র এর মানুষের কল grottyসঙ্গে -cবিকল্প যদি না আপনার জন্য বলছি রং MANCOLOR পরিবর্তনশীল (যেখানে ক্ষেত্রে সেটিং দ্বারা -cপ্রেরণ করা হয় না grottyএবং grottyANSI SGR পালাবার ক্রম সেখানে ব্যবহার ডিফল্ট নির্বাচনগুলি ফেরত্ পাওয়া যাবে)।
MANCOLOR=1 man bash | grep NAME
সেখানে কাজ করবে।
ডেবিয়ানে, জিআরওএফএফএসজিআরটি ডিফল্ট নয়। যদি তুমি করো:
GROFF_SGR=1 man bash | grep NAME
তবে, manস্টাডাউটটি টার্মিনাল নয়, এটি একটি GROFF_NO_SGRভেরিয়েবল পাস করার জন্য এটি নিজেই grottyনেমেছে (আমি মনে করি এটি এসএসআর সিকোয়েন্সগুলি কীভাবে স্ট্রিপ করতে জানে না col -bpxবিএস সিকোয়েন্সগুলি স্ট্রিপ করতে ব্যবহার করতে পারে col, যদিও এটি এখনও রয়েছে এটি দিয়ে MAN_KEEP_FORMATTING) যা আমাদের ওভাররাইড করে GROFF_SGR। পরিবর্তে আপনি এটি করতে পারেন:
GROFF_SGR=1 MANPAGER='grep NAME' man bash
(টার্মিনালে) এসজিআর এস্কেপ সিকোয়েন্সগুলি পেতে।
সে সময়, আপনি যে যারা কিছু বিজ্ঞপ্তি পাবেন NAME এর গুলি টার্মিনাল (এবং উপর গাঢ় দেখা না less -Rপেজার)। আপনি যদি আউটপুট sed -n l( MANPAGER='sed -n /NAME/l') এ ফিড করেন তবে আপনি এমন কিছু দেখতে পাবেন:
\033[1mNAME\033[0m$
কোথায় \e[1mANSI সামঞ্জস্যপূর্ণ টার্মিনাল মধ্যে সাহসী সক্ষম করতে ক্রম, এবং \e[0mক্রম ডিফল্ট সব SGR বৈশিষ্ট্যাবলী রূপে ফিরিয়ে নিয়ে যেতে।
সেই পাঠ্যটিতে সেই পাঠ্যটি grep NAMEযেমন কাজ করে তেমন কাজ করে NAMEতবে আপনার এখনও সমস্যা হতে পারে যদি পাঠ্যের সন্ধান করে যেখানে কেবলমাত্র তার কিছু অংশ সাহসী / আন্ডারলাইন রয়েছে ...