eu executo esse comando e perco as cores, tem alguma solução? jq . map.json | less
Sim. O problema é que o jq só emite cores quando detecta que está escrevendo para um terminal. Ao fazer pipe para o less, ele desabilita as cores.
Use a opção -C (--color-output) para forçar as cores:
jq -C . map.json | less -R
Onde:
-Cforça ojqa gerar códigos ANSI de cor.less -Rpermite que olessinterprete e exiba esses códigos de cor.
Se quiser tornar isso padrão, pode criar um alias:
alias jqc='jq -C'
e usar:
jqc . map.json | less -R
Outra alternativa é configurar a variável:
export JQ_COLORS='1;37:0;37:0;37:0;32:1;37:1;37'
mas mesmo assim você continuará precisando do -C quando usar pipes.
Para arquivos JSON grandes, o padrão que a maioria das pessoas usa é:
jq -C . map.json | less -R
ou até:
cat map.json | jq -C . | less -R
embora o cat seja desnecessário nesse caso.