স্ক্রিপ্ট আউটপুট থেকে নিয়ন্ত্রণ চরগুলি (কনসোল কোড / রঙ সহ) সরানো হচ্ছে


68

কমান্ড লাইনে একটি ইন্টারেক্টিভ সেশন রেকর্ড করতে আমি "স্ক্রিপ্ট" কমান্ডটি ব্যবহার করতে পারি। তবে এটিতে সমস্ত নিয়ন্ত্রণ অক্ষর এবং রঙ কোড অন্তর্ভুক্ত রয়েছে । আমি "কল-বি" দিয়ে নিয়ন্ত্রণ অক্ষরগুলি (ব্যাকস্পেসের মতো) মুছতে পারি, তবে রঙের কোডগুলি সরানোর কোনও সহজ উপায় আমি খুঁজে পাচ্ছি না।

নোট করুন যে আমি কমান্ড লাইনটি স্বাভাবিক উপায়ে ব্যবহার করতে চাই, সুতরাং সেখানে রঙগুলি অক্ষম করতে চাই না - আমি কেবল তাদের স্ক্রিপ্ট আউটপুট থেকে মুছে ফেলতে চাই। এছাড়াও, আমি জানি যে চারপাশে খেলতে পারি এবং জিনিসগুলি ঠিক করার জন্য একটি রেজিএক্সএক্স সন্ধান করার চেষ্টা করতে পারি তবে আমি আশা করছি যে একটি সহজ (এবং আরও নির্ভরযোগ্য - আমি যদি রেজিএক্সপ্যাক্স বিকাশ করব তখন সম্পর্কে যদি আমি জানি না তবে কী আছে?)

সমস্যাটি দেখানোর জন্য:

spl62 tmp: স্ক্রিপ্ট
স্ক্রিপ্ট শুরু হয়েছে, ফাইল টাইপ স্ক্রিপ্ট
spl62 লেপল: এলএস
add-licence.sed build-example.sh অঙ্গীকার-পরীক্ষা push-docs.sh
add-licence.sh build.sh মুছে ফেলা-লাইসেন্স করুন। সেটআপ.পি
asn build-test.sh delete-licence.sh src
build-doc.sh ক্লিন ডকুমেন্ট- src test.ini
spl62 লেপল: প্রস্থান করুন
স্ক্রিপ্ট সম্পন্ন, ফাইল টাইপ স্ক্রিপ্ট
spl62 tmp: cat -v typcript
স্ক্রিপ্ট থু 09 জুন ২০১১ 09:47:27 এএম সিএলটি শুরু হয়েছে
spl62 লেপল: ls ^ এম
^ [[০১ মিটার ^ [[00 এমডি এমডি-লাইসেন্সসেসড ^ ^ [[0 মিম ^ [[00; 32 এমবিইয়েলড-এক্সাম্পশন.শ ^ [[0 মিমি ^ [[00 এমকিমিট-পরীক্ষা ^ ^ [[0 এম ^ [[00; 32 ম্যাম-ডকস.এসএস ^ [[0 মিনিট ^ এম
^ [[00; 32 এমড্ডি-লিকেন্স.এসএইচ ^ [[0 মিঃ ^ [[00; 32 এমবিএলডিএসএস ^] [[0 এমএম ^ [[00 মিডিলেট-লাইসেন্সেন্স.সিড ^ [[0 মিমি] [[00 এমসেটআপ.পিপি ^ [[0 মিমি এম)
^ [[01; 34masn ^ [[0 মিঃ ^ [[00; 32 এমবিএইচডি.টেস.এসএস ^ ^ [[0 মি। ^ [[00; 32 এমডি; 32 মিমিলেট-লেন্সেন্স.এসএস ^] [[[0 মি।
^ [[00; 32 এমবিএইচডি-ডক.এসএস ^ [[0 মিঃ ^ [[00; 32mCanan ^ [[0 মিমি ^ [[01; 34mdoc-src ^ [[0 মিঃ ^ [[00 মিস্টে.ইন.ই.সি.আর.]
spl62 লেপল: প্রস্থান করুন ^ এম

স্ক্রিপ্ট থু 09 জুন ২০১১ 09:47:29 এএম সিএলটি এ হয়েছে
spl62 tmp: কল-বি <টাইপস্ক্রিপ্ট 
স্ক্রিপ্ট থু 09 জুন ২০১১ 09:47:27 এএম সিএলটি শুরু হয়েছে
spl62 লেপল: এলএস
0 এম 100 এমডি এমডি-লাইসেন্সেন্স .00 এম 00; 32 এমবিল্ড-উদাহরণ.sh0 এম 00 এমকোমিট-টেস্ট 0 এম 00; 32 ম্যাম-ডকস.শ0 মি
00; 32 এমডি-লাইসেন্স.শ0 মিঃ 00; 32 এমবিআইইডি.শ0 মিঃ 00 এমডিলেট-লাইসেন্সেন্স.সেসড এম 00 এমসেটআপ.পি 0 এম
01; 34masn0m 00; 32 এমবেইল্ড-টেস্ট.শ0 মি 00; 32 এমডিলেট-লেন্সেন্স.শ0 এম 01; 34 এমএসসি 0 মি
00; 32 এমবিল্ড-ডক.এস.00 00; 32mclean0m 01; 34mdoc-src0m 00mtest.ini0m
spl62 লেপল: প্রস্থান করুন

স্ক্রিপ্ট থু 09 জুন ২০১১ 09:47:29 এএম সিএলটি এ হয়েছে

উত্তর:


57

নিম্নলিখিত স্ক্রিপ্টের জন্য সমস্ত এএনএসআই / ভিটি 100 / এক্সটার্ম নিয়ন্ত্রণ সিকোয়েন্সগুলি ছড়িয়ে দেওয়া উচিত ( সিটিএলসেক্সের ভিত্তিতে )। সর্বনিম্ন পরীক্ষিত, দয়া করে যেকোন অনূর্ধ্ব বা ওভার ম্যাচের প্রতিবেদন করুন।

#!/usr/bin/env perl
## uncolor — remove terminal escape sequences such as color changes
while (<>) {
    s/ \e[ #%()*+\-.\/]. |
       \e\[ [ -?]* [@-~] | # CSI ... Cmd
       \e\] .*? (?:\e\\|[\a\x9c]) | # OSC ... (ST|BEL)
       \e[P^_] .*? (?:\e\\|\x9c) | # (DCS|PM|APC) ... ST
       \e. //xg;
    print;
}

জ্ঞাত সমস্যা:

  • ত্রুটিযুক্ত ক্রম সম্পর্কে অভিযোগ করে না। এই স্ক্রিপ্টটি এটাই নয়।
  • ডিসিএস / প্রধানমন্ত্রী / এপিসি / ওএসসিতে মাল্টি-লাইন স্ট্রিং আর্গুমেন্ট সমর্থিত নয়।
  • 128-1515 সীমাতে বাইটগুলি নিয়ন্ত্রণের অক্ষর হিসাবে পার্স করা যেতে পারে, যদিও এটি খুব কমই ব্যবহৃত হয়। এখানে এমন একটি সংস্করণ যা অ-এএসসিআইআই নিয়ন্ত্রণ অক্ষরগুলি বিশ্লেষণ করে (এটি ইউটিএফ -8 সহ কিছু এনকোডিংগুলিতে নন-এএসসিআইআই পাঠকে মঙ্গোল করবে)।
#!/usr/bin/env perl
## uncolor — remove terminal escape sequences such as color changes
while (<>) {
    s/ \e[ #%()*+\-.\/]. |
       (?:\e\[|\x9b) [ -?]* [@-~] | # CSI ... Cmd
       (?:\e\]|\x9d) .*? (?:\e\\|[\a\x9c]) | # OSC ... (ST|BEL)
       (?:\e[P^_]|[\x90\x9e\x9f]) .*? (?:\e\\|\x9c) | # (DCS|PM|APC) ... ST
       \e.|[\x80-\x9f] //xg;
    print;
}

উভয় উত্তর ধন্যবাদ। আমি অনুভব করেছি যে আমার একটি ভাল উত্তর হিসাবে কিছু করা উচিত, যদিও উভয়ই রেগেক্সপ্স দেয়, যা আমি এড়াতে চেয়েছিলাম। এটি ফর্ম্যাটটির জন্য একটি রেফারেন্স দেয় হিসাবে এটি চয়ন করে।
অ্যান্ড্রু কোক

@ অ্যান্ড্রু: আমার রেজিএক্সপ্যাক্স যথেষ্ট নমনীয় যে আমি এটি এখনকার প্রচলিত যে কোনও টার্মিনাল এবং সম্ভবত আগামীকাল বিদ্যমান টার্মিনালের সাথেও কাজ করবে বলে আশা করি। আমি এটি খুব বেশি পরীক্ষা করে দেখিনি, তাই বাগগুলিও থাকতে পারে তবে কন্ট্রোল সিক্যুয়েন্সগুলি কয়েকটি সাধারণ প্যাটার্ন অনুসরণ করে এমন পদ্ধতির শব্দটি দুর্দান্ত।
গিলস

দয়া করে এই স্ক্রিপ্টটি কীভাবে ব্যবহার করবেন তা সরবরাহ করুন। এটি কি পাইপ ইনপুট প্রয়োজন? বা অবস্থানগত যুক্তি?
ট্রেভর বয়েড স্মিথ

@ ট্রেভরবয়েডস্মিথ হয় হয় ইনপুটটির জন্য কাজ করবে, এবং আউটপুট সর্বদা আদর্শ পাঠ্য ইউটিলিটির মতো স্ট্যান্ডার্ড আউটপুটে থাকে।
গিলস 20

এই মঙ্গলগুলি মাল্টিবাইট অক্ষর যেমন ☺ (\ xe2 \ x98 \ xba)। [\ X80- \ x9f] ধারাটি মধ্য বাইটটি সরিয়ে দেয়।
জেফ্রি

31

গ্যারিসের উত্তর আপডেট করে গাড়ি চালানো রিটার্ন অপসারণ এবং পূর্বের অক্ষরগুলির ব্যাকস্পেস-মুছে ফেলার কাজগুলি, যা সাইগউইনের উপর নির্মিত টাইপস্ক্রিপ্টের জন্য উভয়ই আমার জন্য গুরুত্বপূর্ণ:

#!/usr/bin/perl
while (<>) {
    s/ \e[ #%()*+\-.\/]. |
       \r | # Remove extra carriage returns also
       (?:\e\[|\x9b) [ -?]* [@-~] | # CSI ... Cmd
       (?:\e\]|\x9d) .*? (?:\e\\|[\a\x9c]) | # OSC ... (ST|BEL)
       (?:\e[P^_]|[\x90\x9e\x9f]) .*? (?:\e\\|\x9c) | # (DCS|PM|APC) ... ST
       \e.|[\x80-\x9f] //xg;
       1 while s/[^\b][\b]//g;  # remove all non-backspace followed by backspace
    print;
}

আপনার স্ক্রিপ্ট এবং @ গিলিসের সাথে আমি এই বার্তাটি পছন্দ করি তখন +1 আমি ইতিমধ্যে ওপি হিসাবে একই প্রশ্নে একটি পোস্ট টাইপ করছিলাম। আপনার
দু'জনের

10

আমি sedএই ক্ষেত্রে ব্যবহার করতে হবে ।

একটি করুন:

cat -v typescript | sed -e "s/\x1b\[.\{1,5\}m//g"

সেড-ই "গুলি / অনুসন্ধান / প্রতিস্থাপন / জি" স্ট্যান্ডার্ড স্টাফ। রেজেক্স নীচে হিসাবে ব্যাখ্যা করা হয়েছে:

\x1bরঙের কোডের আগে এস্কেপ \[ম্যাচ করুন .\{1,5\}কোনও একক অক্ষরের 1 থেকে 5 এর সাথে প্রথম উন্মুক্ত বন্ধনীটির সাথে মেলে। আছে \তাদের mangling থেকে খোলসের রাখার কোঁকড়া ধনুর্বন্ধনী। mরেজেক্সের শেষ অক্ষর - সাধারণত রঙের কোডটি অনুসরণ করে। //কী দিয়ে সবকিছু প্রতিস্থাপন করা যায় তার জন্য খালি স্ট্রিং। gপ্রতি লাইনে একাধিকবার এটি মেলে।


3
এই রেজেক্সগুলি অত্যধিক স্ট্রিপগুলি ( পরিবর্তে foo\e[1m(1m = {হয়ে যায় ), প্রতিস্থাপন করা আরও সঠিক। foo = {foo(m = {.[0-9;]
লেকেনস্টেইন

প্রতিস্থাপন .\{1,5\}সঙ্গে [^m]\{1,5\}যে জন্য - কিন্তু মনে রাখবেন যে এই তারপর মাত্র সরিয়ে ফেলা হবে "গ্রাফিক্স প্রতিদান" কোডগুলি (ঐ যে একটি শেষ m) - মূলত রং, বিপরীত, সাহসী এবং তির্যক শৈলী (যেখানে প্রযোজ্য)।
হান্নু

এটি সরিয়ে দেয় না \x1b(B(
রাস্টস

1
কেন \x1bএবং না \033?
অ্যাট্রিপস

এটি এর \u001bপরিবর্তে হতে পারে\x1b
ইউনজেন


6
# The "sed -r" trick does not work on every Linux, I still dunno why:
DECOLORIZE='eval sed "s,${END}\[[0-9;]*[m|K],,g"'

=> কীভাবে ব্যবহার করুন:

<commands that type colored output> | ${DECOLORIZE}

পরীক্ষিত: - এআইএক্স 5.x / 6.1 / 7.1 - লিনাক্স ম্যান্ড্রেকে / মান্দ্রিভা / এসইএলএস / ফেডোরা - সুনোস


3

আমি scriptreplayকোনও স্ক্রিনে চালিয়ে এবং স্ক্রোলব্যাক বাফারটি একটি ফাইলে ডাম্প করে সমস্যার সমাধান করেছি ।

নিম্নলিখিত প্রত্যাশা স্ক্রিপ্ট আপনার জন্য এটি করে।

এটি 250.000 লাইন পর্যন্ত লগফাইলে পরীক্ষা করা হয়েছে। ওয়ার্কিং ডিরেক্টরিতে আপনার স্ক্রিপ্টলগ দরকার, এটিতে "টাইম" নামক একটি ফাইল, যার মধ্যে 10,000.000 বার লাইন "1 10", এবং স্ক্রিপ্ট হয়। কমান্ড লাইন আর্গুমেন্ট হিসাবে আপনার স্ক্রিপ্টফিলের নাম আমার দরকার ./name_of_script name_of_scriptlog

#!/usr/bin/expect -f 

set logfile [lindex $argv 0]

if {$logfile == ""} {puts "Usage: ./script_to_readable.exp \$logfile."; exit}

set timestamp [clock format [clock sec] -format %Y-%m-%d,%H:%M:%S]
set pwd [exec pwd]
if {! [file exists ${pwd}/time]} {puts "ERROR: time file not found.\nYou need a file named time with 10.000.000 times the line \"1 10\" in the working directory for this script to work. Please provide it."; exit}
set wc [exec cat ${pwd}/$logfile | wc -l]
set height [ expr "$wc" + "100" ]
system cp $logfile ${logfile}.tmp
system echo $timestamp >> ${logfile}.tmp
set timeout -1
spawn screen -h $height -S $timestamp 
send "scriptreplay -t time -s ${logfile}.tmp 100000 2>/dev/null\r"
expect ${timestamp} 
send "\x01:hardcopy -h readablelog.${timestamp}\r"

send "exit\r"

system sed '/^$/d' readablelog.$timestamp >> readablelog2.$timestamp
system head -n-2 readablelog2.$timestamp >> ${logfile}.readable.$timestamp
system rm -f readablelog.$timestamp readablelog2.$timestamp ${logfile}.tmp

সময় ফাইল দ্বারা উত্পাদিত হতে পারে

for i in $(seq 1 10000000); do echo "1 10" >> time; done

টাইম ফাইল তৈরির কমান্ডটি কয়েক মিনিটের জন্য 100% সিপিইউ ব্যবহার উত্পন্ন করে এবং এটির পরে আমার মেমরির ব্যবহার 100% এবং চলমান কমান্ডের ফলে "কাঁটাচামচ: মেমরি বরাদ্দ করতে পারে না"। এবং এটি বাস্তবে প্রত্যাশার মতো কাজ করে নি।
বারটেক্স 2 এক্স

টাইমিং ফাইলটি উত্পন্ন করার জন্য আরও অনেক সহজ উপায় রয়েছে। ক্ষেত্রগুলি " delay blocksize", সুতরাং এটি কেবল " 0 <entirefile>" না তৈরি করার কোনও কারণ নেই এবং দেরি না করে পুরো জিনিসটি ফেলে দিন। আপনি প্রথম লাইন ( tail -n +2 typescript|wc -c) বিয়োগের স্ক্রিপ্টের আকার গ্রহণ করে এটি করতে পারবেন এবং এর সাথে টাইমিং ফাইলটি তৈরি করুন echo "0 "`tail -n +2 typescript|wc -c` > timing। এটি মূলত তাত্ক্ষণিক scriptreplayহবে এবং দ্রুততম গতিতে পুরো স্ক্রিপ্টটি পুনরায় খেলবে।
এফআরডি

1

একই সমস্যার সমাধান খুঁজতে গিয়ে এই প্রশ্নটি খুঁজে পেয়েছি। আরও কিছু খনন করে এই লিপিটি লাইভ জার্নালে এই লিপিটিতে পাওয়া গেছে। আমি আমার জন্য নিখুঁতভাবে কাজ করেছি। এটি এই সমস্যা এবং সমাধান কীভাবে কাজ করে সে সম্পর্কে একটি খুব ভাল লেখার বিষয় up অবশ্যই একটি পাঠ্য মূল্য। http://jdimpson.livejournal.com/7040.html

#!/usr/bin/perl -wp

# clean up control characters and other non-text detritus that shows up 
# when you run the "script" command.

BEGIN {
# xterm titlebar escape sequence
$xtermesc = "\x1b\x5d\x30\x3b";

# the occurence of a backspace event (e.g. cntrl H, cntrol W, or cntrl U)
$backspaceevent = "\x1b\\\x5b\x4b"; # note escaping of third character

# ANSI color escape sequence
$ansiesc = qr/\x1b\[[\d;]*?m/;

# technically, this is arrow-right. For some reason, being used against
# very long backspace jobs. I don't fully understand this, as evidenced
# by the fact that is off by one sometimes.
$bizarrebs = qr/\x1b\[C/;

# used as part of the xterm titlebar mechanism, or when
# a bell sounds, which might happen when you backspace too much.
$bell = "\x07"; # could use \a

$cr = "\x0d"; # could use \r

$backspace = "\x08"; # could use \b
}

s/$xtermesc.+?$bell//g;
s/[$cr$bell]//g;
s/${backspaceevent}//g;
s/$ansiesc//g;
while (s/(.)(?=$backspace)//) { s/$backspace//; } # frickin' sweet 
# For every ^H delete the character immediately left of it, then delete the ^H.
# Perl's RE's aren't R, so I wonder if I could do this in one expression.
while (s/(..)(?=$bizarrebs)//) { s/$bizarrebs//; }

1

আমি স্ক্রিপ্ট আউটপুটটিকে সরল পাঠ্যে রূপান্তর করতে বিশেষ সরঞ্জামগুলি ব্যবহার করতে পছন্দ করব, যা নিয়মিত সমর্থিত এবং ভালভাবে পরীক্ষা করা হয়, কাস্টম রেজপ্লেক্সের মাধ্যমে। সুতরাং এটি আমার জন্য কাজ করেছে:

$ cat typescript | ansi2txt | col -bp > typescript.txt.bp    
$ cat -v typescript.txt.bp

স্ক্রিপ্ট কমান্ড টাইপসক্রিপ্ট ফাইল অ্যানিসিটি টেক্সটে ক্যাপচার করে - রঙিনকোডস, ব্যাকস্পেসস ইত্যাদির মতো এ্যাসিসি কোডগুলি নিয়মিত পাঠ্যে রূপান্তর করে, তবে আমি দেখতে পেলাম যে দম্পতি এখনও বাকি রয়েছে। কল-বিপি - এগুলি সম্পূর্ণরূপে সরানো হয়েছে।

আমি এটি সর্বশেষ উবুন্টু ডিস্কোতে পরীক্ষা করেছি এবং এটি কার্যকর।


1

উবুন্টুতে প্যাকেজে একটি ansi2txtকমান্ড রয়েছে colorized-logs। এটি এএনএসআই রঙের কোডগুলি দুর্দান্তভাবে মুছে ফেলে, তবে এটি প্রবর্তন বারের মতো উত্পাদিত বারগুলি ^Hবা ^Mঅক্ষরগুলিকে জায়গায় পাঠানোর জন্য অক্ষরগুলির সাথে ডিল করে না । col -bসঙ্গে মোকাবেলা করতে পারেন যারা , তাই ভাল ফলাফলের জন্য আপনি দুটি একত্রিত করতে পারেন

cat typescript | ansi2txt | col -b

0

আমি দেখতে পেয়েছি যে টার্মিনালের catআউটপুটটি দেখার জন্য আমার কেবল প্রয়োজন ছিল script। এই সাহায্য করে যখন অন্য ফাইল আউটপুট পুনঃনির্দেশিত কিন্তু ফলাফলের পাঠযোগ্য করতে না মতো cat -v, col -b, অথবা একটি টেক্সট এডিটর।

রঙগুলি নির্মূল করতে বা ফলাফলগুলিকে কোনও ফাইলে সংরক্ষণ করতে, আউটপুটটিকে ম্যানুয়ালি অনুলিপি catকরে কোনও পাঠ্য সম্পাদক বা অন্য catকমান্ডে আটকান , যেমন:

cat > endResult << END
<paste_copied_text_here>
END

1
আপনার scriptরানটিতে ওপির মতো রঙের কোড সংযুক্ত আউটপুটও অন্তর্ভুক্ত ছিল?
জেফ স্ক্যালার হলেন

ব্যবহার catউপহার আসল রং, যা ম্যানুয়াল কপি-এবং-পেস্ট দ্বারা সরানো হতে পারে। ওপি ব্যবহার করেছে cat -vএবং col -b, উভয়ই সঠিকভাবে ফর্ম্যাটেড শেষের ফলাফলের চেয়ে কোড উপস্থাপন করে। আমি আমার উত্তর সম্পাদনা করেছি।
রজার ডিউক

-2

শেষের উত্তরটি অনুসরণ করা যা টিআর এবং: সিএনটিআরএল ব্যবহার করে: আমরা সম্ভবত এটি করতে পারি

sed "/^[[:cntrl:]]/d" output.txt

এটি আমার পক্ষে কাজ করে বলে মনে হচ্ছে কারণ vi দ্বারা উত্পন্ন সমস্ত রেখাগুলি একটি নিয়ন্ত্রণ অক্ষর দিয়ে শুরু হয়। কোনও ট্যাব দিয়ে শুরু হওয়া ফাঁকা লাইন এবং লাইনগুলি বের করে ফেলার ঘটনা ঘটে, যদিও এটি আমি যা করছি তার জন্য কাজ করে। Control n \ m \ t ব্যতীত অন্য কোনও নিয়ন্ত্রণ চরিত্রের সাথে ম্যাচ করার উপায় রয়েছে।

হতে পারে আমরা নির্দিষ্ট নিয়ন্ত্রণের চরিত্রটি অনুসন্ধান করতে পারি এবং এটি দেখে মনে হচ্ছে যে ভিআই দ্বারা শুরু করা সমস্ত জাঙ্ক লাইন like [। হেক্সডাম্প আমাকে প্রথম চরিত্রটি 1 বি বলে, সুতরাং এটি খুব কার্যকর বলে মনে হচ্ছে

sed "/^\x1b/d" output.txt

এটি উপরে পোস্ট করা একটি উত্তরের মতো দেখায়, তবে এটি সঠিকভাবে কাজ করে না কারণ কমান্ডটি চালানোর পরে কিছু জাঙ্ক চরগুলি ইতিমধ্যে কমান্ড লাইনে যুক্ত করা হয়েছে যেন ব্যবহারকারী তাদের টাইপ করেছে।


1
উত্তরগুলি পরিবর্তন করতে পারে এবং করতে পারে তেমন কোনও "শেষ উত্তর" নেই। আপনি যে উত্তরটি উল্লেখ করতে চান তার নীচে "ভাগ" বোতামটি ব্যবহার করা উচিত এবং আপনার উত্তরের একটি লিঙ্ক হিসাবে এটি অন্তর্ভুক্ত করা উচিত। আপনার উত্তরটি ধরে নেওয়া অবশ্যই কোনও মন্তব্যের চেয়ে বেশি যথেষ্ট। আপনি যে কয়েকটি উত্তর উল্লেখ করছেন তা এখনই আমি সনাক্ত করতে পারি না।
রোয়াইমা

1
"আমরা হয়তো কাজ করতে পারে ..." হ্যাঁ, আমরা পারে যে কি - কিন্তু এটা হবে মুছতে যে লাইন যে শুরু একটি নিয়ন্ত্রণ অক্ষর দিয়ে । উদাহরণস্বরূপ, ls --color(যেমন প্রশ্নটিতে প্রদর্শিত হয়েছে) এর আউটপুটে আপনার সমাধানটি প্রায় প্রতিটি লাইনে তথ্য মুছে ফেলবে । ভাল না. তবে এর অকেজো ব্যবহার বাদ দেওয়ার জন্য ধন্যবাদ cat। :-) ⁠
জি-ম্যান

একটি অক্ষর শ্রেণি তৈরির উপায় আছে যা: ইস্কেন্ট্রল: তবে নয়: ইস্পেস:? হতে পারে কিছু বাক্য গঠন যেমন ^ [[:: ইস্কেন্ট্রল:] - [: ইস্পেস স্পেস]]
স্নরণ

-4

tr - অনুবাদ বা অক্ষর মুছুন

cat typescript | tr -d [[:cntrl:]]

ইউনিক্স স্ট্যাকেক্সচেঞ্জে স্বাগতম! উত্তর দেওয়ার সময় আপনার উত্তরটি হ'ল কেন তা সম্পর্কে কিছুটা ব্যাখ্যা দেওয়া ভাল ।
স্টিফেন রাউচ


3
এটি আসলে সঠিকভাবে কাজ করবে না, কারণ এটি 01;34mউদাহরণস্বরূপ অপসারণ করবে না এবং লাইনের শেষটি সরিয়ে ফেলবে newline (\n)
sorontar
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.