ls -l --color=auto | tee output.log
পাইপ / টি ছাড়া এটি রঙিন। আমি কীভাবে এটি তৈরি করতে পারি যাতে এটি ব্যবহারের সময় রঙিন থাকে tee
(শুধুমাত্র স্ক্রিনে রঙিন হতে পারে, আমি লগগুলিতে রঙগুলি যত্ন করি না)।
ls -l --color=auto | tee output.log
পাইপ / টি ছাড়া এটি রঙিন। আমি কীভাবে এটি তৈরি করতে পারি যাতে এটি ব্যবহারের সময় রঙিন থাকে tee
(শুধুমাত্র স্ক্রিনে রঙিন হতে পারে, আমি লগগুলিতে রঙগুলি যত্ন করি না)।
উত্তর:
unbuffer
কোনও কমান্ডের আগে কেবল এটি সন্নিবেশ করান যাতে এটি মনে হয় যে এটি একটি ইন্টারেক্টিভ আউটপুটটিতে লিখছে এমনকি যদি এটি অন্য কোনও এক্সিকিউটেবলের মধ্যে পাইপ করে। এটি ক্ষেত্রে রঙ রক্ষা করবে ls
।
উদাহরণ স্বরূপ
unbuffer ls -l --color=auto | tee output.log
আপনি যদি ইতিমধ্যে এটি ইনস্টল না করে থাকেন তবে উবুন্টু এবং অন্যান্য ডেবিয়ান-ইশ লিনাক্স বিতরণগুলি করে আপনি ইনস্টল করতে পারেন unbuffer
।
sudo apt-get install expect-dev
xcodebuild
- পরিবর্তে আমি কোনও রঙ ছাড়াই কাটা-আপ লাইন পেয়েছি। unbuffer xcodebuild | less -R
নির্দোষভাবে কাজ করেছেন, তবে।
expect-dev
প্যাকেজ দরকার নেই । expect
যথেষ্ট।
Ls বিকল্পটি ব্যবহার করুন --color=always
--color=auto
কোনও পাইপলাইনে আউটপুট রঙ করবে না - সুস্পষ্ট কারণে।
মূল পৃষ্ঠাটি নিম্নলিখিত বলে:
--Color = অটো দিয়ে, রঙ কোডগুলি কেবল তখনই আউটপুট হয় যদি স্ট্যান্ডার্ড আউটপুট টার্মিনালের সাথে সংযুক্ত থাকে (tty)।
ls -l
একটি উদাহরণ ছিল। আমার কাছে সম্পূর্ণ আলাদা কমান্ড (হিরকু লগস) রয়েছে যা পাইপ করার সময় রঙ ফেলা করে tee
। এবং আমি টি / পাইপ "ঠিক করতে / পরিবর্তন করতে" চাই, আমি যে আদেশটি চালাচ্ছি তা নয়।
ls
। আমার উত্তরটি দেখুন যা হিরকু লগ সহ সমস্ত প্রোগ্রামের জন্য সমস্যার সমাধান করে।
আমি script
গৃহীত উত্তরের মন্তব্যে প্রদত্ত সমাধানটি প্রসারিত করব । script
আপনি কমান্ড থাকা প্রত্যাশিত প্যাকেজটি ইনস্টল করতে বা না করতে চাইলে ব্যবহার করা কার্যকর হতে পারে unbuffer
।
ls
স্ট্যান্ডআউটে প্রিন্ট আউটপুট এবং রঙ কোড সহ ফাইল :
script -efq output.log -c "ls -l --color=auto"
কোথায় ( man script
):
-e, --return Return the exit code of the child process. Uses the same format as bash termination on signal termination exit code is 128+n. -f, --flush Flush output after each write. This is nice for telecooperation: one person does `mkfifo foo; script -f foo', and another can supervise real-time what is being done using `cat foo'. -q, --quiet Be quiet (do not write start and done messages to either standard output or the typescript file).
রঙ সহ আউটপুট ফাইলটি দেখুন :
less -r output.log
-e
--return
উভয়ের জন্য প্রয়োজন নেই - হিসাবে একই -efq
হয় --return --flush --quiet
।