স্ক্রিনশটটি ম্যাঙ্গেলড এএনএসআই রঙের কোডগুলি প্রদর্শিত হচ্ছে যা পাঠ্য রেন্ডারিং নিয়ন্ত্রণ করে। বোল্ড / উজ্জ্বল পাঠ্যটি অনুক্রমের সাথে উত্পাদিত হয় ␛[1m
, যা সাধারণত আপনার টার্মিনাল দ্বারা ব্যাখ্যা করা হয় এবং সরাসরি স্ক্রিনে প্রদর্শিত হয় না: এটি কেবল পরবর্তী বিটটিকে উজ্জ্বল করে তোলে makes আন grep
পেড আউটপুটটির স্ক্রিনশটটি প্রতিটি লাইনের লেবেল এবং মানগুলির মধ্যে রঙের পার্থক্য দেখায়, সুতরাং আসল আউটপুট এগুলি ব্যবহার করে।
দেখা যাচ্ছে যে এই ক্রমটি আপনার চূড়ান্তভাবে ভেঙে গেছে grep
, যা কোডের "মি" এর সাথে মেলে (যেহেতু এটি একটি চিঠি [a-z]
) এবং এটি নিজেই লাল রঙে হাইলাইট করার চেষ্টা করেছিল। এটি আংশিক অব্যাহতি ক্রম পিছনে ফেলেছে, যা আপনার টার্মিনালটি প্রক্রিয়া করতে পারে না।
পালানোর চরিত্রটি ␛
হ'ল ইউ + 001 বি, যা অজানা-চরিত্রের বাক্সগুলিতে রেকর্ড করা হেক্সাডেসিমাল সংখ্যা। যা প্রদর্শিত হয় তা হল পালানো (বাক্স), ক [
, ক 1
, একটি লাল যার m
পরে প্রত্যাশিত মিলে যাওয়া পাঠ্য "ইঞ্জ" এবং তার পরে "22" ("সাধারণ রঙ এবং তীব্রতা" এর সংখ্যাসূচক কোড) এর পরে একই ঘটনা ঘটে।
ভাঙা আউটপুট সত্যই:
␛ [1 ␛ [31m মেং ␛ [22m ␛ [22 ␛ [31m মি ␛ [22m
যেখানে ␛[31m
টেক্সট লাল এবং তোলে ␛[22m
এটি ফিরিয়ে সাদা করিয়া, উভয় দ্বারা সন্নিবেশিত grep
প্রায় m
মূল পাঠ্যে অক্ষর। মূলটি কেবলমাত্র:
␛ [1 মি Eng ␛ [22m
যা কেবল উজ্জ্বল " eng
" এবং তারপরে স্বাভাবিক পাঠ্যে ফিরে আসে।
আপনি আপনার চূড়ান্ত grep
রূপান্তর করে grep --color=always
এবং এতে পাইপ দিয়ে এটি পরীক্ষা করতে পারেন hexdump
, যা সমস্ত অপ্রিনিতযোগ্য অক্ষর এবং আপনার টার্মিনাল দ্বারা ব্যাখ্যা করা একটিতে প্রদর্শিত হবে।
আপনি এটি কয়েকটি উপায়ে মোকাবেলা করতে পারেন। একটি হ'ল grep
এই মুহুর্তের জন্য আপনার ওরফে ছাড়া ব্যবহার করা :
./trans --id --input /path/to/txt | grep ISO | \grep [a-z]
ব্যাকস্ল্যাশ অস্থায়ীভাবে উপনামটি এড়িয়ে যায় এবং grep
সরাসরি চলে।
আরেকটি হ'ল আসল কমান্ড থেকে এএনএসআই কোডগুলি সরিয়ে ফেলা, যার জন্য এই প্রশ্নে কিছু পরামর্শ রয়েছে :
./trans --id --input /path/to/txt | perl -pe 's/\e\[[\d;]*m//g' | grep ISO | grep [a-z]
তবুও অন্য বিকল্পটি হল শেষে একটি বহিরাগত পাইপ যুক্ত করা:
./trans --id --input /path/to/txt | grep ISO | grep [a-z] | cat
কারণ চূড়ান্ত grep
ফলাফলটি সরাসরি টিটিওয়াইয়ের পক্ষে নয়, তবে cat
পাইপের মাধ্যমে এটি রঙিন হাইলাইটিং সন্নিবেশ করবে না।
সম্ভবত সর্বোত্তম বিকল্পটি হ'ল অনুবাদক শেলটি নিজের টার্মিনালটিতে না থাকলে তার নিজস্ব আউটপুটে টার্মিনাল কন্ট্রোল সিকোয়েন্সগুলি প্রথম স্থানে ব্যবহার বন্ধ করে দেয়। এটি আপনার লেখক (গুলি) এর কাছে আপনার কাছ থেকে একটি বাগ রিপোর্ট সঠিকভাবে জড়িত করবে এবং শেলের ansi()
ক্রিয়াকলাপে অনুবাদ করার জন্য একটি কোড ফিক্স জড়িত করবে , তবে একটি এটি কিছুটা চাপিয়ে দিতে পারে:
TERM=dumb ./trans --id --input /path/to/txt | grep ISO | grep [a-z]
এটি dumb
অনুবাদ শেলের পরিবেশে টার্মিনাল ধরণের পাস করে , যা এটি কমপক্ষে ECMA-48 রঙ সমর্থন না করে স্বীকৃতি দেয়। (দুঃখের বিষয়, অনুবাদ শেলটি টার্মিনফো ব্যবহার করে না এবং কেবল নিজের কোডে হার্ডওয়ায়ারগুলি বোঝে যে টার্মিনাল এটি বোঝে এবং এটি যে নিয়ন্ত্রণ সিকোয়েন্সগুলি ব্যবহার করে তা ব্যবহার করে))