যদি আপনি | 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
এবং grotty
ANSI 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[1m
ANSI সামঞ্জস্যপূর্ণ টার্মিনাল মধ্যে সাহসী সক্ষম করতে ক্রম, এবং \e[0m
ক্রম ডিফল্ট সব SGR বৈশিষ্ট্যাবলী রূপে ফিরিয়ে নিয়ে যেতে।
সেই পাঠ্যটিতে সেই পাঠ্যটি grep NAME
যেমন কাজ করে তেমন কাজ করে NAME
তবে আপনার এখনও সমস্যা হতে পারে যদি পাঠ্যের সন্ধান করে যেখানে কেবলমাত্র তার কিছু অংশ সাহসী / আন্ডারলাইন রয়েছে ...