Przeciągaj za mniej, ale zaznaczaj

32

Czy jest możliwe przesłanie danych wyjściowych (np. dmesg) Do polecenia takiego jak less(lub równoważnego) i zachowanie podświetlenia tekstu używanego przez oryginalne polecenie?

przykład: po lewej stronie dmesg | lesspo prawejdmesg

<kod> dmesg |  mniej </code> vs <code> dmesg </code>

apok
źródło

Odpowiedzi:

37

Użyj tego --humanparametru, aby wyświetlić kolorowe dmesgwydruki w lesspodobnym środowisku.

dmesg --human --color=always

Możesz również użyć następującego polecenia, aby uzyskać podobne wyniki.

dmesg --color=always | less -R

Wiele innych narzędzi, które produkują wyjście kolorowy ( ls, grepetc.) mają podobną --color=alwaysopcję.

Steven
źródło
1
Właściwie --humannie więcej niż po prostu zachować kolor i rury less: Oznacza ono także terminów jak np [May23 00:58]i kolejnych małych przesunięć jak [ +6.046768]zamiast tego, co zawsze będzie [121187.191521]z less.
Ruslan
Czy istnieje sposób na automatyczne utrzymanie tego zachowania formatowania kolorów za każdym razem, gdy przesyłam dowolne polecenie oparte na txt (nie tylko dmesg)?
mikemtnbikes
@mikemtnbikes Musisz użyć, --color=alwaysjeśli podany przez program. Program wie, czy jest wysyłany do potoku i dlatego może zdecydować się na wydrukowanie koloru, czy nie.
Steven