grep
を使用し、それを他のプログラムにパイプするときは、--color
オプションは尊重されません。私は--color=always
を使用することができると知っていますが、それはまた、私がttyにいた場合に得られる出力として、そのコマンドの正確な出力を得たいいくつかの他のコマンドもあります。どのコマンドでもbashのttyでふりをします
私の質問は、コマンドがtty内で実行されていると思うようにコマンドをトリックすることは可能ですか?例えば
、私のような何かを書くことができるようにしたいと思い
grep --color word file # Outputs some colors
grep --color word file | cat # Doesn't output any colors
を実行している:
IS_TTY=TRUE grep --color word file | cat # Outputs some colors
This questionは、私が欲しいものを行う可能性がありますツールを持っているようだ:empty - run processes and applications under pseudo-terminal (PTY)が、私がドキュメントで読むことができるものから、私はそれが私の問題のために助けることができると確信していません
あなたは '--color'がパイプラインをさらに下ってコマンドを送るために送られる実際のデータストリームを変更することを認識していますか?結果は、 'searchTarget'が'^[32; 4gsearchTarget^[32; h'(またはそれに類するもの)ではないので、他の妥当なコードを破ることになります。がんばろう。 – shellter
はい、私のスクリプトでは、このテクニックを使用してgrepsを使用することはありませんが、私が使用するコマンドの中には、ttyの外で使用したときに別のものを出力するように見えるものもあります(例えば 'ag'、シルバーバーダー、 ..)私は他の人にそれらのコマンドをパイプするたびに、同じフォーマットで印刷するためのすべてのオプションを学ぶ時間がありません) – edi9999
うん..これはいくつかの驚くべき答え(私に)前に出てきたと思います。あなたは '[linux](or)[bash] --color'を多く探しましたか?がんばろう。 – shellter