テキストをhead、tail、lessなどに渡して色付けする方法はありますか?


26

パイプを通過したテキストのカラー化保つためにどのような方法がある|headtailless、などは?


特定の出力プログラムはありますか?パイプを介してデータを送信するプログラムに依存します。headtailなどは色を削除するものではなく、通常、出力がコンソール(色付き)、ファイルまたはパイプ(色なし)のいずれであるかをチェックするデータを生成するプログラムです。
-KurzedMetal

回答:


15

私はあなたがパイピングをlsしていて、ターミナルのカラーコードを保存したいと思っています。ls --color=always(デフォルトの代わりに)言うことができます--color=auto。これはコードを保存しますが、それはあなたがパイプしているものがそれらを理解する方法を知っていることを保証しません。

glark代わりに使用grepすると、色付きで表示しようとします。

less一緒-Rに使用すると、色付きで表示しようとします。


6
からパイピングしていgitます。色付けgit config color.diff alwaysを保持する同様の構成(例:)があることがわかりました。
ティモフィーゴルシコフ

1
@Errandirこの構成の問題は、git diff常にANSIエスケープコードを出力するため、入力として出力を使用するスクリプトまたはコマンドが破損することです。
-KurzedMetal

@Errandir、ありがとう!git diffからのクリーンな出力に依存するスクリプトはないので、これでうまくいきます!! ありがとうございました !
アシュトッシュジンダル

私はgrepのためにこれを使用する:grep "string" file.txt | head私はちょうどこれを変更してくださいグレップから結果が着色した作るためにgrep "string" file.txt --color=always | head
エミールStenström

13

パイプで出力を生成するプログラムに依存します。

headtailなどは色を削除するものではなく、通常、出力がコンソール(色付き)、ファイルまたはパイプ(色なし)のいずれであるかをチェックするデータを生成するプログラムです。

コンソールに出力を送信しているかのようにプログラムを出力にパイプする方法を示す別のSU Q&Aを見つけました(コンソールをエミュレートunbuffer


color=autoモードで色付けを維持する方法はありますか(プログラムに出力がパイプではなくコンソールに送られると思わせるため)?
ティモフィーゴルシコフ

@KurzedMetal方法は、プログラム、例えば行いheadtail、、など、それが(それは等色せずにデータを生成することができる)他のプログラムにパイプされていることを検出します。
ホルヘブカラ16年

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.