অক্ষর ^[[37m
এবং ^[[0m
অংশ ANSI পালাবার ক্রম (সিএসআই কোড) । এই স্পেসিফিকেশন এছাড়াও দেখুন ।
জিএনইউ ব্যবহার করা হচ্ছে sed
sed 's/\x1b\[[0-9;]*m//g'
\x1b
(বা \x1B
) হ'ল পালানো বিশেষ চরিত্র
( sed
বিকল্পগুলি সমর্থন করে না \e
এবং \033
)
\[
পলায়ন ক্রমের দ্বিতীয় চরিত্র
[0-9;]*
রঙ মান (গুলি) রেজেেক্স
m
অব্যাহতি ক্রমের শেষ চরিত্র
⚠ MacOS উপর, ডিফল্ট sed
কমান্ড মত বিশেষ অক্ষর সমর্থন করে না \e
যেমন সেই বিষয়টিই তুলে ধরেছিলেন SLM এবং steamer25 মন্তব্য। পরিবর্তে gsed
আপনি ব্যবহার করে ইনস্টল করতে পারেন তা ব্যবহার করুন brew install gnu-sed
।
ওপির কমান্ড লাইনের উদাহরণ: (ওপি অর্থ আসল পোস্টার)
perl -e 'use Term::ANSIColor; print color "white"; print "ABC\n"; print color "reset";' |
sed 's/\x1b\[[0-9;]*m//g'
টম হেল গ্রাফিক্স মোডের (বর্ণ) এস্কেপ ক্রমের নির্দিষ্ট [a-zA-Z]
বর্ণের পরিবর্তে অন্যান্য সমস্ত পালানোর ক্রম সরিয়ে ফেলার পরামর্শ দেয় m
। তবে [a-zA-Z]
এটি খুব প্রশস্ত হতে পারে এবং খুব বেশি মুছে ফেলতে পারে। মিশা ফালেস্কি এবং মিগুয়েল মোটা যথাক্রমে [mGKH]
এবং [mGKF]
যথাক্রমে কেবলমাত্র কয়েকটি পালানোর ক্রম সরিয়ে দেওয়ার প্রস্তাব রাখে । ত্রুটি / সতর্কতা থেকে রঙগুলি অপসারণ করার পাশাপাশি ব্রিটটন ক্যারিন ইঙ্গিতও K
করতে হবে (পুনর্নির্দেশ করতে ভুলবেন না )।m
gcc
gcc 2>&1 | sed...
sed 's/\x1b\[[0-9;]*m//g' # Remove color sequences only
sed 's/\x1b\[[0-9;]*[a-zA-Z]//g' # Remove all escape sequences
sed 's/\x1b\[[0-9;]*[mGKH]//g' # Remove color and move sequences
sed 's/\x1b\[[0-9;]*[mGKF]//g' # Remove color and move sequences
Last escape
sequence
character Purpose
--------- -------------------------------
m Graphics Rendition Mode (including Color)
G Horizontal cursor move
K Horizontal deletion
H New cursor position
F Move cursor to previous n lines
ব্যবহার perl
sed
কিছু অপারেটিং সিস্টেমে ইনস্টল করা সংস্করণ সীমিত হতে পারে (যেমন ম্যাকোস)। কমান্ডটি perl
আরও অপারেটিং সিস্টেমে সাধারণত ইনস্টল / আপডেট করা সহজ হওয়ার সুবিধা দেয়। আদম কাট্স ব্যবহার করতে প্রস্তাব দেওয়া \e
(একই হিসাবে \x1b
) এ PCRE ।
আপনি কমান্ডগুলি ফিল্টার করতে চান তার উপর নির্ভর করে আপনার রেজেক্সটি চয়ন করুন:
perl -pe 's/\e\[[0-9;]*m//g' # Remove colors only
perl -pe 's/\e\[[0-9;]*[mG]//g'
perl -pe 's/\e\[[0-9;]*[mGKH]//g'
perl -pe 's/\e\[[0-9;]*[a-zA-Z]//g'
perl -pe 's/\e\[[0-9;]*m(?:\e\[K)?//g' # Adam Katz's trick
ওপির কমান্ড লাইনের উদাহরণ:
perl -e 'use Term::ANSIColor; print color "white"; print "ABC\n"; print color "reset";' \
| perl -pe 's/\e\[[0-9;]*m//g'
ব্যবহার
স্টুয়ার্ট কার্ডাল এর মন্তব্য দ্বারা ইঙ্গিত হিসাবে , এই sed
কমান্ড লাইন প্রকল্প চূড়ান্ত Nginx ব্যাড বট (1000 তারা) ইমেইল রিপোর্ট পরিষ্কার করতে ব্যবহার করে ;-)
more
বাless -R
যা কোনও টেক্সট সম্পাদকের পরিবর্তে এস্কেপ কোডগুলি রঙ হিসাবে ব্যাখ্যা করতে পারে।