編集:
色を解析することは一般的に考えられない考えであることをお勧めします。
私がそれを望んだ理由の 1 つは、それを解析して、自分のスクリプト出力で渡すことができるようにするためでした。これは……まあ、磁器とかを使って自分で着色部分を作り直した方が良さそうです!
元の質問は次のとおりです。
私のスクリプトは (これまでのところ) カラー コードを処理するのに十分堅牢であるため、色を見るのが好きです。ここで私は物事に逆らっているように見えますが、正直なところ、スクリプトでエスケープ コードのようなものを解析しなければならないことについて、大したことはわかりません。色がインタラクティブな使用に役立つのであれば、手動で行うよりも多くのデータを集計したり処理したりするスクリプトの使用に役立たないのはなぜでしょうか? 色はさらに重要ではないでしょうか?
とにかく、出力を変更する、きちんとした小さなシェル スクリプトをgit status
作成しました。このスクリプトで色をそのまま維持できるようにしたいと考えています。グローバル git 構成は、変更されたファイルと追跡されていないファイルのリストが git ステータスに色付きで表示されるように設定されています。残念ながら、私が見つけることができるgit diff
色を強制するオプションはありません。git status
非常に明確にするために、これが問題です。
$ git status
完璧な出力を生成しますが、(私のスクリプトからの抜粋が続きます)
git status | sed "s/^#/\x1b[34m#[0m/"
色付きのgit status
出力は生成されません。スクリプトからの出力のさまざまな領域を強調するのに役立つため、先頭のハッシュ文字を明示的に青に変換していることもここでわかります。
色を出す方法を知っている人はいますか?「偽の端末」STDIN/STDOUTパイプとして使用できる標準プログラムはありますか?実際、私は pty 疑似端末ツールにも取り組んでいるので、この目的のためにそれを確実に利用できますが、それはかなり手間のかかるソリューションです (構築が完了していないため、まだ使用する準備ができていません)。