Czy istnieje jakiś sposób, aby zachować koloryzacja tekstu przeszły przez rurę |do head, tail, less, itd.?
Czy istnieje jakiś sposób, aby zachować koloryzacja tekstu przeszły przez rurę |do head, tail, less, itd.?
Odpowiedzi:
Przypuszczam, że prowadzisz rurociągi lsi chcesz zachować kody kolorów terminali. Możesz powiedzieć ls --color=always(zamiast domyślnego --color=auto), co zachowa kody, ale to nie zagwarantuje, że rzecz, którą przesyłasz, wie, jak je zrozumieć.
Jeśli użyjesz glarkzamiast greptego, spróbujesz wyświetlić kolory.
Jeśli korzystasz lessz -Rniego będzie próbował wyświetlania kolorów.
git. Odkryłem, że ma podobną konfigurację (np. git config color.diff always), Która utrzymuje kolorowanie.
git diffdane wyjściowe jako dane wejściowe, ponieważ zawsze będą generować kody specjalne ANSI.
grep "string" file.txt | headaby upewnić się, że wynik grep jest kolorowy, właśnie zmieniłem to nagrep "string" file.txt --color=always | head
Zależy to od programu, który generuje dane wyjściowe w potoku.
head, tailitp. to nie te usuwające kolory, to program generujący dane, które zwykle sprawdzają, czy dane wyjściowe trafiają do konsoli (kolorowe), pliku lub potoku (nie kolorowe)
Znalazłem inne pytania i odpowiedzi SU pokazujące, jak kłamać w potokowaniu programów do wyjścia tak, jakby wysyłały dane wyjściowe do konsoli (emulowanie konsoli za pomocą unbuffer)
color=autotrybie (aby program pomyślał, że wyjście trafia do konsoli zamiast potoku)?
head, tailitd wykryje, że jest odprowadzone do innego programu (tak, że może on wygenerować dane bez kolorów, itp).
head,tailitp. to nie te usuwające kolory, to program generujący dane, które zwykle sprawdzają, czy dane wyjściowe trafiają do konsoli (kolorowe), pliku lub potoku (nie kolorowe).