Questão Usando o relógio com canos


Eu gostaria de executar este comando:

watch -n 1 tail -n 200 log/site_dev.log | grep Doctrine

Mas não corre, porque "penso" que o grep tenta correr no relógio em vez do rabo ...

Existe uma maneira de fazer algo como

watch -n 1 (tail -n 200 log/site_dev.log | grep Doctrine)

Muito obrigado!


147


origem




Respostas:


Coloque o comando entre aspas

watch -n 1 'tail -n 200 log/site_dev.log | fgrep Doctrine'

234



E se o pipeline também contiver citações (como awk '{print $3}')? Editar: Como isso - OrangeDog


Eu posso estar errado, mas isso não conseguiria a mesma coisa (visualizar as linhas de log correspondentes à medida que elas são adicionadas) de forma mais simples?

tail -f -n 200 log/site_dev.log | grep Doctrine

27



Eu concordo que isso pode ser mais eficiente no que diz respeito à CPU, mas no contexto do tópico "Usando o watch with pipes" ele não usa watch, então não é uma resposta. Isso pode ser um caso de uma pergunta de exemplo ruim, já que watch e pipes parecem aparecer com frequência não no contexto da cauda. - tudor
Não, acho que você está confundindo os meios e o fim. O usuário claramente queria ver Doctrine chegando em um arquivo crescente, e quando ele olhou em sua caixa de ferramentas, a única coisa que ele encontrou foi watch. O que ele realmente precisava saber era tail -f. Veja também meta.stackexchange.com/questions/66377/what-is-the-xy-problem - dland
Eu acho que estas são as duas respostas aceitáveis. A resposta principal e aceita responde corretamente à pergunta exata feita, e essa resposta identifica corretamente Problema XY que OP criou para si e fornece a solução que eles realmente queriam em primeiro lugar. Ambas as respostas poderiam facilmente ser úteis para alguém que se deparasse com essa questão. - cdhowie
Eu estava procurando uma maneira de assistir shellcheck *.sh | grep line | wc -l e a resposta aceita foi útil para mim. - Amedee Van Gasse