Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
ターミナルでコマンドを実行して出力をキャプチャしたいので、使用しています
my $output = `command`;
問題は、コマンドに構文の強調表示があるため、後で印刷して構文の強調表示を失い、代わりに次のようなものを取得することです。
print $output;
結果
←[31merror←[39m ←[
構文を強調表示せずにコマンドを取得する方法、または構文の強調表示を印刷時に表示する方法を教えてください。
シェル出力からANSIカラーエスケープを削除するには、これを試してください:
my $output = `command`; my $output =~ s/\e\[[\d;]*m//g; print "$output","\n";
すべての ANSI エスケープ シーケンスを削除する場合は、正規表現を次のように置き換えます。
s/\e\[?.*?[\@-~]//g