`Man ls> temp.txt` করেছে` আউটপুট পাঠ্য ফাইলটি দূষিত


27

যখন আমি এক্সিকিউট man ls > temp.txtকরি আউটপুট টেক্সট ফাইল দূষিত হয়। দূষিত হয়ে আমি বোঝাতে চাইছি যে কিছু শব্দের মধ্যে প্রথম এবং শেষ বর্ণগুলি অত্যধিক পুনরাবৃত্তি হয়।

বেশ কয়েকটি প্রথম লাইন এতে temp.txt:

LS(1)                     BSD General Commands Manual                    LS(1)

NNAAMMEE
     llss -- list directory contents

SSYYNNOOPPSSIISS
     llss [--AABBCCFFGGHHLLOOPPRRSSTTUUWW@@aabbccddeeffgghhiikkllmmnnooppqqrrssttuuwwxx11] [_f_i_l_e _._._.]

DDEESSCCRRIIPPTTIIOONN

ইত্যাদি। পুনঃনির্দেশ ছাড়াই man lsপুরোপুরি স্বাভাবিক। কি হচ্ছে?


মজার বিষয় হল, ফাইলটি দেখা lessবা moreফর্ম্যাটটি সঠিকভাবে প্রদর্শন করা। আপনি যদি ব্যবহার করেন তবে এটি অতিরিক্ত অক্ষর সহ vimকাঁচা ব্যাকস্পেসগুলি ( ^H) প্রদর্শন করবে ।
ক্যালভিন

2
আপনার ফাইলগুলি হিচাপে ভুগছে।
চথুলহু

মজার বিষয়, আউটপুটটি পুনঃনির্দেশিত হলে আমার লিনাক্স কম্পিউটারে ম্যান কমান্ড এ জাতীয় আচরণ করে না।
ডেভিড বেইলি

উত্তর:


30

থেকে man man:

ব্যাকস্পেস এবং আন্ডারস্কোর ছাড়াই কোনও ম্যান পেজের একটি সাধারণ টেক্সট সংস্করণ পেতে চেষ্টা করুন

    # man foo | col -b > foo.mantxt

manম্যান পৃষ্ঠার বিন্যাসিত সংস্করণ প্রিন্ট করে, আন্ডারস্কোর এবং ডাবল বর্ণগুলি পার্স করা হয়

এটি এতটা নয় যে সেগুলি 'পার্সড' করা হয়েছে বরং "যদি আপনার কাছে টার্মিনাল না থাকে, তবে সাহসী বিন্যাসটি পুনরাবৃত্ত অক্ষর হিসাবে প্রদর্শিত হবে"। একবার আপনি এটি টার্মিনাল (vt100, xterm, টার্মিনাল, ইত্যাদি ...) এ সংযুক্ত করার পরে, মানুষ টার্মিনালটি সনাক্ত করে এবং রঙ, গা bold়, আন্ডারলাইন এবং এর মতো উপযুক্ত নিয়ন্ত্রণ কোড প্রেরণ করে। এটি সঠিকভাবে পার্স করা হচ্ছে - কেবল নাল টার্মিনাল ধরণের জন্য।

মাইকেলটি দ্বারা মন্তব্য


21

একসময়, কম্পিউটারগুলি নিয়মিতভাবে টেলি টাইপগুলি (টেলিপ্রিন্টার) পর্যন্ত জড়িত ছিল যা রিয়েল টাইমে প্রাপ্ত সমস্ত কাগজ রিয়েল টাইমে মুদ্রণ করবে। যদিও টেলিফ্রিন্টারে আন্ডারলাইন করা বা গা bold়-মুখী পাঠ্যের কোনও সুবিধা ছিল না, আন্ডারলাইন আউটপুট, ব্যাকস্প্যাকিং এবং অন্য কিছু মুদ্রণের ফলে অন্য কিছু আন্ডারলাইন প্রদর্শিত হবে। একইভাবে একটি অক্ষর আউটপুট করা, ব্যাকস্প্যাকিং করা এবং একই অক্ষর আউটপুট করা চরিত্রটিকে আরও গা appear় দেখা দেয়, যদিও এর কার্যকারিতা ইনস্টল ফিতাটির মানের উপর নির্ভর করে পরিবর্তিত হতে পারে (যদি ফিতাটি পুরানো এবং দুর্বল ছিল, একই অক্ষরটি দুটি টাইপ করুন) এটি উল্লেখযোগ্যভাবে গাer় করে তুলবে; একটি নতুন ফিতা চরিত্রটি টাইপ করে এমনকি একবারে সর্বাধিক কৃষ্ণচূড়ার কাছাকাছি পৌঁছে যাবে)। আরও, এমনকি কোনও ব্যবহারকারী কোনও প্রিন্টারের সাথে সংযুক্ত না থাকলেও,manএকটি মুদ্রণ স্পুলারের কাছে বেশ সাধারণ ব্যাপার হত, যা সম্ভবত ব্যাখ্যা করে manযে আউটপুট পুনঃনির্দেশিত হওয়ার পরেও কেন এমন আচরণ করা হবে।

বিটিডাব্লু, কিছু মুদ্রকগুলিতে (এবং এমনকি টেলিপ্রিন্টারগুলিতে) এর অভিনয়টি _←U_←N_←D_←E_←R_←L_←I_←N_←I_←N_←Gআরও লক্ষণীয় হবে ___________←←←←←←←←←←←UNDERLININGযেহেতু প্রিন্টহেডের বারবার বিপরীত দিকনির্দেশনা প্রয়োজন (এবং সাধারণত উভয় প্রান্তে লক্ষ্য লক্ষ্য করা যায়)। একই সাথে মাল্টি-স্ট্রাইক বোল্ডফেস ব্যবহার করার সময় একই কথাটি ব্যবহার করা যেতে পারে, তবে সেখানে আচরণটি সুবিধাজনক হতে পারে কারণ প্রতিটি চরিত্র প্রথমবার মুদ্রিত হওয়ার সাথে সাথেই একটি ব্যাকস্পেসের অক্ষর অনুসরণ করবে এবং দ্বিতীয়টি তা করবে না। প্রথম অক্ষরটি মুদ্রণের সময় যদি মুদ্রণ শিরোনামটি ত্বরান্বিত হয়, যার ফলে এটি দ্বিতীয়টির তুলনায় কিছুটা আপেক্ষিকভাবে বিভ্রান্ত হবে, যার ফলে গা bold়-মুখের প্রভাব আরও কার্যকর হবে।


ইউনিক্স সম্পর্কে আমি যত বেশি শিখব, ততই আমি উইন্ডোজের মতো পিছনের দিকের সামঞ্জস্যের সাথে কীভাবে এটি জড়িত তা খুঁজে পাব।
সিয়ুয়ান রেন

ঝরঝরে ইতিহাস! নির্দিষ্ট পদ্ধতিগুলি অন্যের চেয়ে কেন পছন্দ করা যায় তা দেখতে দুর্দান্ত।
ডাস্টিন হুইলারের

15

ম্যাটিউজের উত্তরটি সঠিক, তবে এটি উল্লেখ করার মতো যে টিটিটির উদ্দেশ্যে ফর্ম্যাটিংটি বাদ দেওয়ার পরিবর্তে আপনি ম্যান ফর্ম্যাটটি আলাদাভাবে রাখতে পারেন।

উদাহরণস্বরূপ, আপনি এর পরিবর্তে একটি সুন্দর বিন্যাসিত পিডিএফ পেতে পারেন:

man -t ls | pstopdf -i -o ~/ls.pdf

আমি এখন কয়েক বছর ধরে অনিক্স ব্যবহার করে যাচ্ছি মূলত আমার ম্যান পৃষ্ঠাগুলি এটির মতো মুদ্রিত করতে। আর না! আমি এটি এমন একটি স্ক্রিপ্টে লিখব যা আমার সিস্টেমে সমস্ত ম্যান পেজ করবে। এর জন্য অনেক ধন্যবাদ যেহেতু আমি অনিক্স কেন ব্যবহার করছি তা অনেক আগেই ছেড়ে দিয়েছি। আমি টার্মিনাল থেকে এই জাতীয় জিনিসগুলি করা পছন্দ করি এবং এখন আমিও পারি।
ব্যবহারকারী 3439894

দুর্দান্ত বৈশিষ্ট্য। এর বাইরে এইচটিএমএল আউটপুট করার একটি সহজ উপায় আছে? gzip -dc $(man -w ls) | groff -Thtml -mandoc -c > /tmp/man-ls.html
ক্যালভিন

মানুষের ম্যানপেজটি বলে যে / usr / bin / man এর -tসাথে groff -Tps ...চলমান স্ট্রিংগুলির সাথে ফরমেটগুলি হার্ডকডযুক্ত বলে মনে হয়। এবং যেহেতু -TpsGROFF_TYPESETTER ওভাররাইড করে, আপনার সমাধানটি সম্ভবত সবচেয়ে কার্যকর able যদিও আপনি আপনার পাইপলাইনে একটি পদক্ষেপ মিস করছেন। আপনি টিবিএল চান তাহলে গ্রাফ। man -d lsএটি যে পাইপলাইন ব্যবহার করে তা দেখার চেষ্টা করুন ।
টিম বি

6

বিকল্প হিসাবে, আমার নীচের শেল ফাংশনটি সংজ্ঞায়িত হয়েছে ( ওহ-মাই-জেডএসএইচ এর ওএস এক্স প্লাগইন থেকে ডাকা ):

man-preview () {
    man -t "$@" | open -f -a /Applications/Preview.app
}

এর ফলস্বরূপ পছন্দসই ম্যান পৃষ্ঠাটি পূর্বরূপে সমস্ত চমত্কার ফর্ম্যাটিংয়ের মাধ্যমে খোলা হচ্ছে যা ইচ্ছা করতে পারে। এই একক উপন্যাসটি আপনার যুক্ত করা যথেষ্ট সহজ ~/.profile(আমি মনে করি এর pmanচেয়ে সহজ man-preview, সুতরাং আমি alias pman='man-previewআমার মধ্যে সেট করেছি ~/.zshrc)।

পিএস আমি pmanইন্টারনেটের চারপাশে বিভিন্ন ডট ফাইলগুলিতে সংজ্ঞায়িত ফাংশনটি দেখেছি , ওহ-মাই-জেডএসএইচ যেখানে আমার সংজ্ঞায়িত হয় সেখানেই ঘটে।


2

অথবা যে কোনও ম্যান পেজ দেখতে এবং মুদ্রণ করতে আপনি কার্ল লিন্ডবার্গ দ্বারা ম্যানওপেন ব্যবহার করতে পারেন। ম্যানোপেন প্রথমবার NeXtStep এর জন্য বিকাশিত হয়েছিল এবং এখনও কার্লকে ধন্যবাদ জানায়।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.