Sicuramente vi sarà capitato di vedere che é possibile usare i colori in shell tramite dei comandi di escape invece del solito terminale monocronatico. Non sono qui per spiegare come si impostano i colori in shell; per questo ci sono già tantissimi esempi in rete ma come mantenere la visualizzazione a colori se vengono passati in pipe al comando less ? Ad esempio se avete uno script che vi riporta in output lo stato di diversi server (occupazione dischi, memoria, processi, ecc) e visualizzate i valori con colori diversi a seconda della soglia raggiunta, se l’output lo passate in pipe al less vi ritrovate una serie di caratteri escape tanto da rendere l’output incomprensibile. Mi spiego meglio utilizzando un semplice ls colorato:

alex@goku:~$ ls -l *.png *.tar --color | less
-rw-r--r-- 1 alex alex   102400 2011-09-07 16:25 ESC[01;31mcreate_test.tarESC[00m
-rw-r--r-- 1 alex alex     1938 2011-04-27 08:08 ESC[01;35mdata_export.pngESC[00m
-rw-r--r-- 1 alex alex     2716 2011-04-27 08:06 ESC[01;35mload.pngESC[00m
-rw-r--r-- 1 alex alex     5464 2011-04-27 07:55 ESC[01;35mmain-title.pngESC[00m

Tramite il flag -R il less interpreta correttamente la codifica dei colori.

alex@goku:~$ ls -l *.png *.tar --color | less -R
-rw-r--r-- 1 alex alex   102400 2011-09-07 16:25 create_test.tar
-rw-r--r-- 1 alex alex     1938 2011-04-27 08:08 data_export.png
-rw-r--r-- 1 alex alex     2716 2011-04-27 08:06 load.png
-rw-r--r-- 1 alex alex     5464 2011-04-27 07:55 main-title.png

Stessa cosa  se usiamo l’opzione color (o –colour[=WHEN]) del grep (specificando always al posto di auto che disabilita il colore appena incontra una pipe):

grep --colour=always ERROR pippo.txt | less -R

[ad name=”HTML”]

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.