এএনএসআই রঙের সাথে ফাইল প্রদর্শন করুন


12

আমার এএনএসআই রঙের একটি ফাইল রয়েছে।

test.txt:
\e[0;31mExample\e[0m

আমি এই ফাইলটির বিষয়বস্তু টার্মিনালে catপ্রদর্শন করতে চাই , যেমন করি তবে আমি রঙগুলিও প্রদর্শন করতে চাই।


4
less -Rউদাহরণস্বরূপ ব্যবহার করা হচ্ছে ।
থমাস ডিকি

আপনার catমুদ্রণ কি?
টেক্রাফ

1
ওপির প্রশ্নের আকর্ষণীয় হওয়ার পক্ষে অনেকগুলি সম্ভাব্য উত্তর ছিল। দিয়ে শুরু echo -e $(cat test.txt)
থমাস ডিকি

উত্তর:


10

আমি এই সঠিক বাশ প্রশ্নের সমাধান খুঁজছিলাম। আমি থমাস ডিকির মন্তব্য প্রায় মিস করেছি যা আমাকে সবচেয়ে মার্জিত সমাধান দেয়।

echo -e $(cat test.txt)

কিছু জিনিস যা আমার পক্ষে কার্যকর হয়নি তা হ'ল (দৃশ্যত আপনি পাইপ জিনিসগুলি প্রতিধ্বনিত করতে পারবেন না)

cat test.txt | echo -e

অথবা

less -R test.txt

আমার আর একটি সমস্যা ছিল যে প্রতিধ্বনিতু ফাইলের মধ্যে খুব ভালভাবে নিউলাইন এবং স্বচ্ছ স্পেসগুলি প্রিন্ট করে না। সেগুলি মুদ্রণের জন্য, আমি নিম্নলিখিতগুলি ব্যবহার করেছি।

echo -ne $(cat test.txt | sed  's/$/\\n/' | sed 's/ /\\a /g')

এটি একটি টেস্ট.টেক্সট ফাইল সমন্বিত জন্য কাজ করে

\e[0;31mExa         mple\e[0m
\e[0;31mExample line2\e[0m

ভাল উত্তর, কিন্তু \aআমার জন্য ঘণ্টা বাজায়। আমি আপনার দ্বিতীয় সেড কমান্ডটি পরিবর্তন করেছি sed 's/ /\\033\\a /g'যা ঘণ্টা বাজায় না।
বাজ

1
বিভিন্ন টার্মিনাল প্রোগ্রাম (আইটার্ম, অ্যাটম / নিউক্লাইড) আরও পরীক্ষা করার পরে এবং আরও অসুবিধাগুলি সন্ধান করার পরে, আমি কেবল $(cat file.txt)ডাবল উদ্ধৃতিতে গুটিয়ে রাখা এবং শেষে একটি নতুন লাইন যুক্ত করা ভাল বলে মনে করেছি - সুতরাং: echo -ne "$(<file.txt)" \\nবা echo -ne "$(cat <<"EOF" . . . EOF)" \\n। এটি পাঠ্যে গ্লোব সম্প্রসারণ করতে বাশকে বাধা দেয়।
বাজ

1

আপনি যদি catনিয়ন্ত্রণ বর্ণগুলি থেকে রঙ না দেখেন তবে সম্ভবত অক্ষত নয়।

কিছু সরঞ্জাম নিয়ন্ত্রণের অক্ষরগুলি ছড়িয়ে দেয় তবে লেজ প্রান্তে ছেড়ে যায়।

তুলনা করা:

 echo -e "\e[0;31mExample\e[0m foo"

প্রতি

 echo -e "[0;31mExample[0m foo" 

আপনি যা রেখে গেছেন তা থেকে নিয়ন্ত্রণ সিক্যুয়েন্সটি পুনর্নির্মাণ করতে সক্ষম হবেন, যদিও আপনি যে রেজেক্সটি ব্যবহার করেন তা দুর্ঘটনাক্রমে অযাচিত চরিত্রের ক্রম ইত্যাদি আঁকতে পারে তবে উদাহরণস্বরূপ:

echo -e "[0;31mExample[0m foo" | sed "s:\[\([0-9]*[;m]\):^[[\1:g"

উদাহরণটি স্ট্রিংয়ে রঙ পুনরুদ্ধার করবে।


-1

এটি ডিফল্টরূপে কাজ করা উচিত। যেমন আমি যদি করি ls --color=always > /tmp/aএবং তার চেয়ে বেশি cat /tmp/a, আমি রঙগুলি দেখি। পরীক্ষা করে odনিশ্চিত করা হয় যে ফাইলটি এএনএসআই রঙ ব্যবহার করে।

সুতরাং আমি মনে করি আপনার টার্মিনালটি এএনএসআই রঙগুলি সমর্থন করে কিনা (এবং সেগুলি সক্ষম করা আছে) তা পরীক্ষা করা উচিত।


1
এটি প্রশ্নের উত্তর দেয়নি।
টমাস ডিকি

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