2016-05-12 3 views
-2

LinuxのbashアプリケーションstdoutをPythonで解析したい。 私はstdoutを、PythonのサブプローブライブラリからPopen関数を使って文字列に読み込みます。 pythonで私のbashアプリケーションstdoutで赤色の文字列を検索するにはどうすればいいですか? 「アイテム番号」を色で検索するにはどうすればよいですか?赤い文字列を文字列に読み込む?Linuxの色付き文字列を検索するbash stdout with python

enter image description here

+0

出力をファイルにパイプします。色は制御文字で認識可能でなければなりません。 –

+0

あなたに注目してくれてありがとうございます、もっと説明しますか?それらの制御文字は何ですか(Pythonのdocリファレンスでお願いします) – user3019074

+1

これはPythonの問題ではありません。https://en.wikipedia.org/wiki/ANSI_escape_code#色。 –

答えて

1

赤2、例えば、おそらく\eはASCIIエスケープを表し\e[31m2\e[0mのようなバイト列です。 (0が存在する場合と存在しない場合があります)これらは端末に書き込まれる実際のバイトです。ターミナルはそれらを通常のテキストの表示方法を変更するための指示として扱います。つまり、\e[31、およびmを表示する代わりに、次のテキストを赤で表示する命令として扱われます。 \e[0m(または\e[m)も同様に表示されず、端末のデフォルトの色とスタイルで次のテキストを表示するための指示として表示されます。

+0

「\ e [31m2 \ e [0m」はどういう意味ですか?このASCIIは "red 2"に相当しますか? – user3019074

+0

はい:http://www.tldp.org/HOWTO/Bash-Prompt-HOWTO/x329.html –

+0

エスケープコードはANSI標準の一部です。 ANSI準拠の端末は、それらをリテラルバイトとして扱いません。 – chepner

関連する問題