É possível obter saída colorida do comando find ? Ou seja, no caminho de cada item encontrado, os diretórios são azuis, os scripts executáveis são verdes, etc. Estou usando a versão 4.4.2 do GNU findutils .
Editar - Para esclarecer, cada resultado seria destacado da seguinte forma:
./path/to/file.sh
^ ^ ^
| | L green
blue
(se, por exemplo, executando find . -type f
).
bfs
que tem essa funcionalidade: github.com/tavianator/bfsRespostas:
UPDATE: adicionei um novo script (diferente) ...
Ignacio Vazquez-Abrams
tinha um ponto: a pergunta realmente pedeexecutable scripts are green, et cetera
... ok ... você encontrará um script (protótipo) no final desta resposta.Esta primeira seção (original) é sobre
grc
egrcat
.Isso deve funcionar;
grc
... (como o enzotib indicou .. O nome do pacote égrc
... O sub-utilitário usado no exemplo égrcat
O exemplo a seguir imprime
./
em magentabin/cpp/
em cianobigint
em branco arrojadoAinda não resolvi completamente como ele lida com o arquivo de configuração, mas parece que ele fará o que você deseja (depois de domá-lo) .. por exemplo. para um arquivo sem subdiretório e a sequência de cores parece não estar na mesma sequência que as expressões.
Presumo que seja possível (mas estou um pouco ocupado no momento) ...
Aqui está o novo script inspirado em Ignacio :)
Isso funciona se você usar um único caminho como o primeiro argumento para
find
.Existem problemas não previstos neste script. É apenas conceito.
Uma questão é: Links simbólicos ... águas turvas ...
No estado atual , ele imprime um
ERROR
quando encontra um tipo desconhecido (por exemplo, um link simbólico) e, em seguida, continua o processamento além disso.Obrigado
enzotib
pelostput
exemplos.fonte
grcat
utilitário dogrc
pacote :) No começo, tive algumas dificuldades para entender o que você estava dizendo.Você poderia usar
-exec
para fazer a maior parte disso (minha solução não colore a parte do diretório de maneira diferente). Se você tem o-print
seufind
comando, substitua-o por-exec ls --color -d
; se você estiver usando a impressão implícita, adicione isso. Isso pressupõe que seuls
suporte seja a--color
opção.fonte
Isso faz apenas o realce de duas cores para o caminho e o nome do arquivo, e não o tipo de arquivo por tipo de
ls
:Configure as cores da
grep
saída da maneira correta para as peças correspondentes e não correspondentes e corresponda ao nome do arquivo:Você pode não querer substituir a variável
GREP_COLORS
, portanto, defina-a apenas paragrep
:(As definições da variável reprovada
GREP_COLOR
têm menos prioridade do que as contidasGREP_COLORS
)Para os códigos de cores, consulte
colortest-16
a partir do pacotecolortest
,e seção "Set Gráficos Rendition" em sequências de comandos de terminal ANSI .
fonte
Gostei da ideia -exec. Eu usei para criar esta função:
fonte