Estou modificando o texto seguindo tail -f.
Eu tenho o seguinte programa que monitora um arquivo:
tail -vf -c5 /tmp/index \
| cat -n \
| sed s/^[^0-9]*\\\([0-9]\\\)/__\\\1__/g - \
;
O sed altera com sucesso a saída do tail.
De outro terminal agora posso fazer:
RED='\033[0;31m';
NC='\033[0m';
printf "I ${RED}love${NC} Stack Overflow\n" 1>>/tmp/index;
E o programa de monitoramento de cauda exibirá a atualização em cores.
Mas o que eu quero é que o programa sed adicione por si só cores à saída. Eu tentei várias configurações diferentes, mas sem sucesso. Principalmente envolvendo a adição de barras invertidas aqui e ali.
Como faço para que o programa tail-sed adicione cores à saída?
Escrevi um pequeno script anos atrás que adiciona cores com base em uma expressão regular de entrada. Já postei antes aqui . Se você colar esse script em um arquivo nomeado
color
em um diretório$PATH
e torná-lo executável, poderá fazer:Ou, mais manualmente:
Ou, em
sed
:Ou você poderia simplesmente fazer tudo em perl:
coloriria os números das linhas.