Apakah ada cara untuk menjaga pewarnaan teks melewati pipa |
untuk head
, tail
, less
, dll?
linux
pipe
gnome-terminal
Timofey Gorshkov
sumber
sumber
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).Jawaban:
Saya kira Anda akan mengirim dari
ls
dan ingin mempertahankan kode warna terminal. Anda bisa mengatakanls --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
bukangrep
itu akan mencoba menampilkan dengan warna.Jika Anda menggunakannya
less
dengan-R
itu akan mencoba untuk menampilkan dengan warna.sumber
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
)sumber
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.).