Apakah ada cara untuk menjaga pewarnaan teks melewati pipa |
untuk head
, tail
, less
, dll?
Apakah ada cara untuk menjaga pewarnaan teks melewati pipa |
untuk head
, tail
, less
, dll?
Jawaban:
Saya kira Anda akan mengirim dari ls
dan ingin mempertahankan kode warna terminal. Anda bisa mengatakan ls --color=always
(bukan default --color=auto
), yang akan mempertahankan kode, tetapi itu tidak akan menjamin bahwa Anda ingin tahu cara memahaminya.
Jika Anda menggunakan glark
bukan grep
itu akan mencoba menampilkan dengan warna.
Jika Anda menggunakannya less
dengan -R
itu akan mencoba untuk menampilkan dengan warna.
git
. Saya menemukan bahwa ia memiliki konfigurasi serupa (mis. git config color.diff always
) Yang membuat pewarnaan tetap.
git diff
output sebagai input karena ia akan selalu mengeluarkan kode pelarian ANSI.
grep "string" file.txt | head
untuk memastikan hasil dari grep diwarnai saya hanya mengubahnya kegrep "string" file.txt --color=always | head
Itu tergantung pada program yang menghasilkan output dalam pipa.
head
,, tail
dll bukan yang menghapus warna, itu program yang menghasilkan data yang biasanya memeriksa apakah output pergi ke konsol (berwarna), file atau pipa (tidak berwarna)
Saya menemukan SU T&J lain yang menunjukkan cara membohongi program perpipaan ke keluaran seolah-olah mereka mengirimkan keluaran ke konsol (meniru konsol dengan unbuffer
)
color=auto
mode (untuk membuat program berpikir bahwa output masuk ke konsol bukan pipa)?
head
, tail
dll., Mendeteksi bahwa ia sedang disalurkan ke program lain (sehingga ia dapat menghasilkan data tanpa warna, dll.).
head
,,tail
dll bukan yang menghapus warna, itu program yang menghasilkan data yang biasanya memeriksa apakah output pergi ke konsol (berwarna), file atau pipa (tidak berwarna).