私はこのsed
コマンドを使用しており、前のコマンドのカラー出力を維持したいと思います。 sed の出力はls
色が指定されていますが、sed の出力は色がありません。私はOSXを使用しています。
ls -la | sed -En '/Desktop/q;p'
答え1
macOSではls
GNUではなく、Linuxユーザーが期待できるこの機能のオプションはls
許可されていません。--color=always
macOSバージョンでは、ls
色は次のように表示されます。2つの変数:$CLICOLOR
そして$CLICOLOR_FORCE
。前者が定義されている場合、指定された端末は色をサポートし、出力は端末に送信され、出力$TERM
はGNU--color=auto
オプションと同様に色になります。後者の変数も定義されている場合、最終条件が削除され、GNUの--color=always
。
したがって、色をに渡すにはsed
次のものが必要です。
CLICOLOR_FORCE=1 ls -la | sed -En '/Desktop/q;p'
答え2
ls
私は多くのディストリビューションと同様に、あなたのディストリビューションにも機能する必要があるマップがあると盲目的に推測しますls --color=auto
。ls -la --color=always | sed …
(auto
通常、この設定はls
出力がモニターに行くことを確認し、モニターの色のみを確認します。これは、色がエスケープシーケンス、つまり見えないコマンド文字によって実装されるため、プログラムがいくつかの色を混同する可能性があるためです。など)。